https://www.patest.cn/contests/pat-b-practise/1043
#include "stdio.h"
int main()
{
int i, j, max = 0, num[6] = {0};
char ch;
while(scanf("%c", &ch) && ('\n' != ch))
{
switch(ch)
{
case 'P': ++num[0]; break;
case 'A': ++num[1]; break;
case 'T': ++num[2]; break;
case 'e': ++num[3]; break;
case 's': ++num[4]; break;
case 't': ++num[5]; break;
default: break;
}
}
for(i = 0; i < 6; ++i)
if(max < num[i])
max = num[i];
for(i = 0; i < max; ++i)
for(j = 0; j < 6; ++j)
if(num[j])
{
--num[j];
switch(j)
{
case 0: printf("P"); break;
case 1: printf("A"); break;
case 2: printf("T"); break;
case 3: printf("e"); break;
case 4: printf("s"); break;
case 5: printf("t"); break;
default: break;
}
}
printf("\n");
return 0;
}
本文提供了一个PAT B级竞赛1043题的C语言解答方案,通过读取字符并统计特定字母出现次数,最终按最高频率输出这些字母。此代码适用于初学者了解字符输入及简单统计的应用。
2941

被折叠的 条评论
为什么被折叠?



