C语言 输入一个字符串(包含空格),统计每个字符出现的次数和总数(包含空格的次数),并且找出

C语言 输入一个字符串(包含空格),统计每个字符出现的次数和总数(包含空格的次数),并且找出出现次数最多的字母和次数

#include <stdio.h>

int main()

{

unsigned char s[200],a[128]={0},i;

 int max=0,maxc;

 gets(s);

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

 {

a[s[i]]++;

if(a[s[i]]>max)

{

max=a[s[i]];

maxc=s[i];

}

 }

 for(i=0;i<127;i++)

if(a[i]>0)printf("%c: %d\n",i,a[i]);

 printf("max:%c--%d times.\n",maxc,a[maxc]);

system("pause");

 return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-05
帮你写好的,
#include<stdio.h>
#include<string.h>
int s[100]={0};
char s1[100]={'0'}; //s1保存数组,s记录出现的次数
void f(char a[],int n)
{
int i,k=0,j,total,flag=0;
int max=0;
for(i=0;i<n;i++)
total+=a[i];
for(i=0;i<n;i++)
{
if(a[i]!=0){
s1[k]=a[i];
s[k]++;
for(j=i+1;j<n;j++)
{
if(a[j]==a[i]){
s[k]++;
a[j]=0;
flag=1;
}
}
k++;
a[i]=0;
}
}
for(i=0;i<k;i++)
{
printf("%c 出现的次数是 %d\n",s1[i],s[i]);
}
for(i=0;i<k;i++)
{
if(max<s[i])
{
max=s[i];
j=i;
}
}
printf("%c出现的次数最多%d",s1[j],max);
}
int main()
{
int n;
int i;
char a[100];
gets(a);
n=strlen(a);
f(a,n);
return 0;
}

望采纳谢谢
相似回答