编写一个程序,对用户输入的任意一组字符如{3,1,4,7,2,1,1,2,2},输出其中出现次数最

编写一个程序,对用户输入的任意一组字符如{3,1,4,7,2,1,1,2,2},输出其中出现次数最编写一个程序,对用户输入的任意一组字符如{3,1,4,7,2,1,1,2,2},输出其中出现次数最多的字符,并显示其出现次数。如果有多个字符出现次数均为最大且相等,则输出最先出现的那个字符和它出现的次数。例如,上面输入的字符集合中,“1”和“2”都出现了3次,均为最大出现次数,因为“1”先出现,则输出字符“1”和它出现的次数3次。
要求:使用分支、循环结构语句实现。

#include <stdio.h>

int main()

{char s[300];

 int i,a[100]={0},b[100]={0},k=0;

 gets(s);

 for(i=0;s[i];i++)

 {a[s[i]-32]++;

  if(!b[s[i]-32])b[s[i]-32]=i;

 }

 for(i=1;i<100;i++)

   if(a[i]>a[k]||a[i]==a[k]&&b[i]<b[k])k=i;

 printf("%c出现%d次\n",k+32,a[k]);

}

追问

c语言

追答

上面的就是C语言啊?没认出来?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-26
#include "stdio.h"
#include "stdlib.h"
void main()
{
char a[100];
char c,maxi;
int max = 0,count;
printf("请输入一段字符串:");
//scanf("%s",a);
gets(a);//获取字符串
for(int i=0; a[i] != '\0'; i++)
{
c = a[i];
count = 0;
for(int j=0; a[j] != '\0'; j++)
{
if( c == a[j] )
count++;
}
if(count > max)
{
max = count;
maxi = c;
}
}
printf("输出最多的字符是%c,输出次数最多为%d\n",maxi,max);
system("pause");
}
相似回答