问题是:1. 输入一串字符,以“?”结束,统计各字母出现的次数,并按字母出现的多少输出(先输出字母出现多的,次数相同的按照字母表顺序输出,不出现的不输出)。
#include<stdio.h>#include<string.h>
void main()
{
int num[52]={0},i=0,j=0;
int t,k;
char str[100],s[52],a[10];
gets(str);
for(i=0;i<26;i++);
s[i]='A'+i;
for(j=0;j<26;j++)
s[j+26]='a'+j;
i=0,j=0;
while(str[i]!='?')
{
if(str[i]>='A'&&str[i]<='Z')
num[str[i]-'A']++;
if(str[i]>='a'&&str[i]<='z')
num[str[i]-'a'+26]++;
i++;
}
i=0,j=0;
for(j=0;j<52;j++)
{
k=j;
for(i=j+1;i<52;i++)
{
if(num[k]<num[i])k=i;
}
t=num[j];num[j]=num[k];num[k]=t;
s[j]=s[k];
}
i=0;
while(num[i]!=0)
{
printf("\n");
printf("字母%c出现的次数是%d",s[i],num[i]);
i++;
}
}