[每天例题]蓝桥杯 C语言 单词分析

发布时间 2023-04-02 18:49:14作者: 山远尽成云

蓝桥杯 C语言 单词分析

题目

 

 

题目要求

1.寻找出现最多字母和这 个字母出现的次数

2.如果有多个字母出现的次数相等,输出字典序最小的那个。

思路分析

输入方法:

方法一:

1.可以通过数组来记录该单词,并为单词出现的每一个字母做上标记。

2.可以采用for循环将字符串依次输入,直到输入‘\n’为止。

方法二:

通过gets函数输入字符。

3.如何将字母与出现次数相连接起来?

可以采用双for循环模式,判断ch[i]是否与ch[j]相等,相等则count+1。

4.如何确定已经判断过的字母不会进行重复判断?

可以采取双重for循环与if合作进行判断。

5.可使用if进行对count进行判断,使其对应字母次数一直是最大。

代码:

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
    int i=0,j=0,k=0,p=0;//i与j分别主宰第一、二重循环,k为计算输入的字符串长度,p记录下标
	int maxcount=0;//最大次数
	int count=1;//次数,次数必须为1是因为ch[i]已经出现过一次
	char ch[1000];
	scanf("%s",&ch);//另一种输入方法:gets(ch);
	k=strlen(ch);
	for(i=0;i<k;i++)
	{
		for(j=i+1;j<k;j++)
		{
			if(ch[i]=='/')//当i是已经出现过的字母则无须再次计算
			{
				break;
			}
			if(ch[i]==ch[j])
			{
				ch[j]='/';
				count++;
			}
		}
		if(maxcount<count)
		{
			maxcount=count;
			p=i;
		}
		count=1;
	}
	printf("重复最多的字母为%c,\n重复次数为%d",ch[p],maxcount);
	return 0;
}

  运行结果