/*
7、 从键盘输入一大堆字符串,统计A、B、C、D的出现次数,
最后出现次数由高到低输出字母和出现次数。(C语言)
解题思路:
*/
#include<stdio.h>
void PaiXu(int,int,int,int);
int main()
{
int i,a = 0,b = 0,c = 0,d = 0;
char f[100];
printf("请输入字符串(以空格隔开):\n");
scanf("%s",f);
for(i = 0;f[i] != '\0';i++)
{
if(f[i] == 'A')
a++;
else if(f[i] == 'B')
b++;
else if(f[i] == 'C')
c++;
else if(f[i] == 'D')
d++;
}
printf("%d%d%d%d\n",a,b,c,d);
PaiXu(a,b,c,d);
return 0;
}
void PaiXu(int a,int b,int c,int d)
{
int i,j,max,x[4] = {a,b,c,d};
for(i = 0;i < 3;i++)
{
for(j = i + 1;j < 4;j++)
{
if(x[i] < x[j])
{
max = x[i];
x[i] = x[j];
x[j] = max;
}
}
}
for(i = 0;i < 4;i++)
{
if(x[i] == a)
printf("%c",'A');
else if(x[i] == b)
printf("%c",'B');
else if(x[i] == c)
printf("%c",'C');
else
printf("%c",'D');
printf(":%d次\n",x[i]);
}
}
问题:如果输入的ABCD的个数有相同的,会出现打印错误。 |
|