看不懂你写的代码,我也遇到这个基础测试题了。我的代码如下:
#include <stdio.h>
int main()
{
int a=0,b=0,c=0,d=0;
char *p,s[1024];
printf("请输入一大堆字符串(不区分大小写)\n");
gets(s);
for (p=s;*p!='\0';p++) //统计a、b、c、d出现的次数
{
if (*p=='a'||*p=='A')
{a++;}
else if (*p=='b'||*p=='B')
{b++;}
else if (*p=='c'||*p=='C')
{c++;}
else if (*p=='d'||*p=='D')
{d++;}
}
int i,j,k,max[4]={a,b,c,d}; //给统计出来的数字进行排序
for (i=0;i<=3;i++)
{
for (j=2;j>=i;j--)
{
if(max[j+1]>max[j]) //冒泡排序法
{
k=max[j];
max[j]=max[j+1];
max[j+1]=k;
}
}
}
int x[4]={a,b,c,d}; //按照排序依次输出
char dx[5]="abcd"; //使数组x和数组dx关系对应,便于输出
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
if (max[i]==x[j]) //依次输出,找到对应的统计次数a、b、c、d。
printf("%c %d\n",dx[j],max[i]);
}
}
return 0;
} |