字符處理
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;
}