UVA 10008
输入几个句子,然后求出每个字母所出现的次数,按格式输出
View Code
1 #include<stdio.h> 2 #include<string.h> 3 #include<conio.h> 4 void zhuanhua(char *s)//把小写字母转化为大写字母 5 { 6 int i; 7 for(i=0;s[i]!='\0';i++) 8 if(s[i]>='a'&&s[i]<='z') 9 s[i]-=32; 10 } 11 struct stu{ 12 int a; 13 char s; 14 };//设置结构体包括字母和字母出现的次数 15 int main() 16 { 17 struct stu zimu[26],temp; 18 int n,i,j; 19 char str[1000]; 20 while(scanf("%d",&n)!=EOF) 21 { 22 n++; 23 for(i=0;i<26;i++) 24 { 25 zimu[i].a=0; 26 zimu[i].s=65+i; 27 }//结构体数组初始化 28 while(n--) 29 { 30 gets(str); 31 zhuanhua(str); 32 for(i=0;str[i]!='\0';i++) 33 { 34 if(str[i]>='A'&&str[i]<='Z') 35 { 36 j=str[i]-'A'; 37 zimu[j].a++;//计数 38 } 39 } 40 } 41 for(j=1;j<26;j++) 42 43 for(i=0;i<26-j;i++) 44 if(zimu[i].a<zimu[i+1].a) 45 { 46 temp=zimu[i]; 47 zimu[i]=zimu[i+1]; 48 zimu[i+1]=temp; 49 }//排序 50 51 for(i=0;i<26;i++) 52 { 53 if(zimu[i].a==0) 54 break;//节省运行时间 55 printf("%c %d\n",zimu[i].s,zimu[i].a); 56 } 57 } 58 return 0; 59 }


浙公网安备 33010602011771号