字符处理
1008: ASCII码
http://codeup.cn/problem.php?id=1008
题目描述
相信大家一定都知道大名鼎鼎的ASCII码,这次给你的任务是输入数字(表示ASCII码),输出相对应的字符信息。
输入
第一行为一个整数T(1<=T<=1000)。
接下来包括T个正整数,由空白符分割。(空白符包括空格、换行、制表符)
这些整数不会小于32。
输出
在一行内输出相应的字符信息。(注意不要输出任何多余的字符)
样例输入 Copy
13
72 101 108 108 111 44
32 119 111 114 108 100 33
样例输出 Copy
Hello, world!
//1008: ASCII码
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
int T;
cin>>T;
int num[1010];
string str[1010];
int i;
for(i=0;i<T;i++){
cin>>num[i];//输入ASCII数字形式
}
for(i=0;i<T;i++){
str[i] = num[i];//将ASCII码数字形式转换为字符串形式
cout<<str[i];//输出字符串
}
return 0;
}
1009: 财务管理
题目描述
小明毕业一年了,并且找到了一份好工作。这一年里他赚了很多钱,现在他想知道他这一年里的平均月薪是多少,请你写一个程序帮他计算。
输入
输入包括12行。第i行为第i个月的实际月薪。(i=1,2,3...)
输出
输出小明的平均月薪,保留两位小数,并且最前面输出一个¥符号。
样例输入 Copy
100.00
489.12
12454.12
1234.10
823.05
109.20
5.27
1542.25
839.18
83.99
1295.01
1.75
//1009: 财务管理
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
double sum = 0,ave = 0,money_i;
for(int i=0;i < 12;i++){
cin>>money_i;
sum += money_i;
}
ave = sum / 12;
cout<<"¥";
printf("%.2lf",ave);//注意保留两位小数,格式化输出
return 0;
}
1010: 平均绩点
题目描述
每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。
输入
有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。
输出
每组输出结果占一行。如果输入的大写字母都在集合{A,B,C,D,F}中,则输出对应的平均绩点,结果保留两位小数。否则,输出“Unknown”。
样例输入 Copy
A B C D F
B F F C C A
D C E F
样例输出 Copy
2.00
1.83
Unknown
//1010: 平均绩点
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
double sum;
int num;
char cha[105];
while(gets(cha)){//注意gets()用法,接收所有的字符,包括空格
sum=0;
num = 0;
int len = strlen(cha);
bool flag = 1;
for(int i=0;i < len;i++){
switch(cha[i]){
case 'A':
sum += 4;
break;
case 'B':
sum += 3;
break;
case 'C':
sum += 2;
break;
case 'D':
sum += 1;
break;
case 'F':
sum += 0;
break;
default:
if(cha[i] == ' ')
break;
else{//除了空格其余非法字符
flag=0;break;
}
}
}
num = (len+1)/2;//gets()包括字符串中的空字符,+1是换行符,所以成绩为一半
if(flag){
printf("%.2lf\n",sum/num);
}
else
cout<<"Unknown"<<endl;
}
return 0;
}