c语言求字符串(其中只可能出现小写字母)中出现最多的字母次数,和出现最少的字母次数,分别输出
3个回答
展开全部
追问
输出最多的和最少的次数
追问
不是,只用输出最多的和最少的
追答
#include <stdio.h>
#include <string.h>
int find_max(int numbers[],int len)
{
int Max=1; // 假设最多为1
int index; // 记住谁最多(下标)
int i;
for(i=0;i<len;i++){
if(numbers[i]>Max){ // 假设当前元素大于Max
Max=numbers[i]; // 把它赋值给Max用于下次比较
index=i; // 记住当前最多的下标
}
}
}
void main()
{
int letters[26];
char target[200];
int i,len,index;
// initialize arrays to zero
for(i=0;i<26;i++) letters[i]=0;
scanf("%s",target);
len=strlen(target);
for (i=0;i<len;i++)
{
char c=target[i];
if(c>=65&& c<=90) letters[c-65]++; // 小写
else if(c>=97&&c<=122) letters[c-97]++; // 大写
}
index=find_max(letters,26);
// print the result
char c;
printf("最多:%c\t次数为:%d\n",97-index,letters[index]);
for(c='A';c<='Z';c++){
if(letters[c-65]>0&& letters[c-65]==1){
printf("最少:%c\t次数为:%d\n",c,letters[c-65]);
break;// 注意:由于出现最小的字符有可能不止一个,此处只打印一个
// (若想全部显示输出则把该语句注释掉即可).
}}
printf("\n");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
void main()
{
char ch,c[50];
int i,count[26];
gets(c);
for(i=0;i<26;i++)
count[i]=0;
i=0;
do
{
ch=c[i];
count[ch-97]++;
i++;
}while(ch!='\0');
for(i=0;i<26;i++)
{
if(count[i]!=0)
printf("%c\t%d\n",i+97,count[i]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询