c语言判断字符串中字母的多少和判断哪个字母出现次数最多?

输入字符串(长度小于50),统计每个大写字母出现的次数,输出出现次数最高的大写字母及其出现次数。如果出现次数最高的大写字母有多个,则输出ASCII码值最小的字母及其次数。

以下是我写的代码但是运行得不出我想要的结果。

#include<stdio.h>
int main()
{
	char a;
	int c[26] = { 0 };
	int b[26] = { 0 };
	int i=0, g, h, t, l;
	printf("请输入长度不超过50的大写字母:");
	while ((a = getchar()) != '\n')
	{
		if (a == 'A')
			c[0] = b[0]++;
		if (a == 'B')
			c[1] = b[1]++;
		if (a == 'C')
			c[2] = b[2]++;
		if (a == 'D')
			c[3] = b[3]++;
		if (a == 'E')
			c[4] = b[4]++;
		if (a == 'F')
			c[5] = b[5]++;
		if (a == 'G')
			c[6] = b[6]++;
		if (a == 'H')
			c[7] = b[7]++;
		if (a == 'I')
			c[8] = b[8]++;
		if (a == 'J')
			c[9] = b[9]++;
		if (a == 'K')
			c[10] = b[10]++;
		if (a == 'L')
			c[11] = b[11]++;
		if (a == 'M')
			c[12] = b[12]++;
		if (a == 'N')
			c[13] = b[13]++;
		if (a == 'O')
			c[14] = b[14]++;
		if (a == 'P')
			c[15] = b[15]++;
		if (a == 'Q')
			c[16] = b[16]++;
		if (a == 'R')
			c[17] = b[17]++;
		if (a == 'S')
			c[18] = b[18]++;
		if (a == 'T')
			c[19] = b[19]++;
		if (a == 'U')
			c[20] = b[20]++;
		if (a == 'V')
			c[21] = b[21]++;
		if (a == 'W')
			c[22] = b[22]++;
		if (a == 'X')
			c[23] = b[23]++;
		if (a == 'Y')
			c[24] = b[24]++;
		if (a == 'Z')
			c[25] = b[25]++;

		i++;
	}
	if (i>50)
		printf("请重新输入");
	for (l = 0; l<26; l++)
		printf("%d", b[l]);
	for (g = 0; g<25; g++)
		for (h = 0; h<25 - g; h++)
		{
			if (b[h]<b[h + 1])
			{
				t = b[h];
				b[h] = b[h + 1];
				b[h + 1] = t;
			}
		}
	printf("\n");
	for (l = 0; l<26; l++)
		printf("%d", b[l]);
	g = 0;
	for (g; g < 26; g++)
	{
		a = 65;
		for (h = 0; h < 26; h++)
		{
			printf("%c", a);
			if (b[g] == c[h] && c[h] != 0)
			{
				printf("%c", a);
			}
			a++;
		}
		printf("\n");
	}
}

 

查看全部
sail_gf
孤帆sail
2020/12/02 21:48
  • c++
  • c语言
  • 开发语言
  • 点赞
  • 收藏
  • 回答
    私信

1个回复