满意答案
解题方法:输入单词放入words二维字符串数组缓冲,然后根据长度进行选择排序。统计单词是建立26个元素大小的一维数组letters,遍历全部单词中的每个字母,如果是字母a或A就把letters[0]的值加1,b或B就把letters[1]的值加1,类推。最后显示结果。
代码如下:#include
#include
int main()
{
int i,j,n;
char words[100][32],tmp[32],letters[26];
printf("输入单词数量:");
scanf("%d",&n);
printf("输入%d个单词:",n);
for(i=0;i
{
scanf("%s",words[i]);
}
//选择排序
for(i=0;i
{
for(j=i+1;j
{
if(strlen(words[j])
{
strcpy(tmp,words[i]);
strcpy(words[i],words[j]);
strcpy(words[j],tmp);
}
}
}
//统计字母
for(i=0;i<26;i++) letters[i]=0;
for(i=0;i
{
for(j=0;j
{
if(words[i][j]>='A'&&words[i][j]<='Z')
letters[words[i][j]-'A']++;
else if(words[i][j]>='a'&&words[i][j]<='z')
letters[words[i][j]-'a']++;
}
}
//输出排序后的单词
for(i=0;i
printf("\n");
//输出统计后的字母数
for(i=0;i<26;i++)
{
if(letters[i]) printf("%c:%d个\n",i+'a',letters[i]);
}
}
00分享举报