正弦


私信TA

用户名:qq15582632151

访问量:32277

签 名:

等  级
排  名 145
经  验 7352
参赛次数 0
文章发表 57
年  龄 0
在职情况 学生
学  校 小学生
专  业

  自我简介:


解题思路:      定义大小为26的整型数组,对应26个英文字母, 判断字符串的每个元素, 对应下表的数组值加加,

                     然后进行比较大小,输出即可. 别忘记清空数组.

注意事项:       别用fflush(stdin); 会出错的.

参考代码:

#include<stdio.h>
#include<string.h>
int main()
{
	int i, n, j, t, max, c;
	int num[26] = { 0 };                     //定义大小为26的整型数组,对应26个英文字母的个数
	char str[1200];
	scanf("%d", &n);                            //输入测试数据的组数 n
	getchar();                                  //接收回车
	for (i = 0; i < n; i++)  
	{
		gets(str);                              //输入字符串
		j = 0;
		while (str[j]) 
		{
			t = str[j] - 'a';                 //找到字符串元素对应的数组元素,数组元素加加
			num[t]++;
			j++;
		}
		max = 0;
		for (j = 0; j < 26; j++)
		{
			if (max < num[j])                 //找到出现最多字符的次数
			{
				max = num[j];
			}
		}
		for (j = 0; j < 26; j++)
		{
			if (max == num[j])
			{
				max = num[j];                //找到ascll码最小的出现最多次数的字符
				c = j + 'a';
				break;
			}
		}
		printf("%c %d\n", c, max);              //输出该字符及出现次数
		memset(num, 0, 26 * sizeof(int));         //清空数组
	}
	return 0;

}


 

0.0分

2 人评分

  评论区

  • «
  • »