2213 - 大江在图书馆
时间限制 : 1 秒
内存限制 : 128 MB
大江正在图书馆复习English,看了几小时的英语后,大江开始感到枯燥,于是他决定找点事做,打发下时间。在一篇阅读理解中,26个英文字母出现的次数分别是多少呢?带着疑问大江开始一个个的数了起来....好不容易数完,大江觉得要是还数错了岂不是对不起自己花的时间?于是回到宿舍后大江立马写了个程序来检验成果。如果你是大江,请写出你的程序。
题目输入
第一行输入一个数字T,表示有T组数据,然后第2行到第T+1行每行输入一段文章(文章中间无换行,长度<=1000)。文章可以由大小写英文字母、数字、标点符号及制表符组成。
题目输出
对于每段文章,以*号表示每个字母出现的次数,每组输出后有一个空行。格式见输出样例
输入/输出样例
输入格式
2 Aa2345 bc K52c LoL 123 CF 456
输出格式
A|* K|* a|* b|* c|** C|* F|* L|** o|*
C语言解答
#include <stdio.h> #include <string.h> #include <ctype.h> int main() { int t,i,j,a[26],b[26]; char s[1005]; scanf("%d",&t); getchar(); while(t--) { memset(a,0,26*sizeof(int)); memset(b,0,26*sizeof(int)); gets(s); for(i=0;i<strlen(s);i++) { if(isupper(s[i])) a[(int)s[i]-65]++; if(islower(s[i])) b[(int)s[i]-97]++; } for(i=0;i<26;i++) if(a[i]!=0) { printf("%c|",i+65); for(j=0;j<a[i];j++) printf("*"); printf("\n"); } for(i=0;i<26;i++) if(b[i]!=0) { printf("%c|",i+97); for(j=0;j<b[i];j++) printf("*"); printf("\n"); } if(t) printf("\n"); } }
C++解答
#include<bits/stdc++.h> using namespace std; int t; string a; int aa[1005]; int main() { cin>>t; getchar(); for(int i=1;i<=t;i++) { getline(cin,a); for(int j=0;j<a.size();j++) aa[int(a[j])]++; for(int j=int('A');j<=int('Z');j++) { if(aa[j]!=0) { cout<<char(j)<<"|"; for(int k=1;k<=aa[j];k++) cout<<'*'; cout<<endl; } } for(int j=int('a');j<=int('z');j++) { if(aa[j]!=0) { cout<<char(j)<<"|"; for(int k=1;k<=aa[j];k++) cout<<'*'; cout<<endl; } } memset(aa,0,sizeof(aa)); cout<<endl; } return 0; }