题意:统计字母的个数,以“*”号输出
1 #include<stdio.h> 2 #include<algorithm> 3 #include<string.h> 4 int main() 5 { 6 char str[4][100]; 7 char map[100][100]; 8 int i,j; 9 int a[100]; 10 while(gets(str[0])) 11 { 12 memset(a,0,sizeof(a)); 13 memset(map,' ',sizeof(map)); 14 for(i=1;i<4;i++) 15 { 16 gets(str[i]); 17 } 18 for(i=0;i<4;i++) 19 { 20 int l=strlen(str[i]); 21 for(j=0;j<l;j++) 22 { 23 if(str[i][j]>='A'&&str[i][j]<='Z') 24 { 25 a[str[i][j]-'A']++; 26 } 27 } 28 } 29 int max=0; 30 for(i=0;i<26;i++) 31 { 32 if(max<a[i]) 33 max=a[i]; 34 } 35 for(i=0;i<26;i++)//lie 36 { 37 for(j=0;j<max;j++)//hang 38 { 39 if(j>=(max-a[i])) 40 map[j][i]='*'; 41 } 42 map[max][i]=i+'A'; 43 } 44 for(j=0;j<=max;j++)//hang 45 { 46 for(i=25;i>=0;i--)//lie 47 { 48 if(map[j][i]=='*') 49 { 50 map[j][i+1]='1'; 51 break; 52 } 53 } 54 } 55 for(j=0;j<=max;j++)//hang 56 { 57 for(i=0;i<26;i++)//lie 58 { 59 if(map[j][i]=='1') 60 break; 61 printf("%c",map[j][i]); 62 if(i!=25&&map[j][i+1]!='1') 63 printf(" "); 64 } 65 printf(" "); 66 } 67 } 68 return 0; 69 }