m0_63548337 2021-11-14 14:18 采纳率: 100%
浏览 255
已结题

C语言,查找出现次数最多的字母

为什么输出结果%d num【t】是对的
变成%c str【t】就错了
#include <stdio.h>

int main(int argc, char** argv){
char str[101];
int num[26]={0};
int n;
scanf("%d",&n);
scanf("%s",str);
int i,t=0;
int max;
for(i=0;str[i]!='\0';i++)
{
switch(str[i])
{
case 'a':
num[0]++;
break;
case 'b':
num[1]++;
break;
case 'c':
num[2]++;
break;
case 'd':
num[3]++;
break;
case 'e':
num[4]++;
break;
case 'f':
num[5]++;
break;
case 'g':
num[6]++;
break;
case 'h':
num[7]++;
break;
case 'i':
num[8]++;
break;
case 'j':
num[9]++;
break;
case 'k':
num[10]++;
break;
case 'l':
num[11]++;
break;
case 'm':
num[12]++;
break;
case 'n':
num[13]++;
break;
case 'o':
num[14]++;
break;
case 'p':
num[15]++;
break;
case 'q':
num[16]++;
break;
case 'r':
num[17]++;
break;
case 's':
num[18]++;
break;
case 't':
num[19]++;
break;
case 'u':
num[20]++;
break;
case 'v':
num[21]++;
break;
case 'w':
num[22]++;
break;
case 'x':
num[23]++;
break;
case 'y':
num[24]++;
break;
case 'z':
num[25]++;
break;
}
}
num[t]=num[0];
for(i=0;i<26;i++)
{
if(num[t]>num[i])
{
num[t]=num[t];
}
else
{
num[t]=num[i];
}
}
printf("%c",str[t]);
return 0;
}

  • 写回答

1条回答 默认 最新

  • -Undefined_ 2021-11-17 22:42
    关注
    #include <stdio.h>
    int main(int argc, char** argv) {
        char str[101];
        int num[26] = {0};
        int n;
        scanf("%d", &n);
        scanf("%s", str);
        int i, t = 0;
        int max;
        for(i = 0; str[i] != '\0'; i++) {
            num[str[i]-97]++; 
        }
        max = num[0];
        for(i = 0; i < 26; i++) {
            if(num[i] > max) {
                max = num[i];
                t=i;
            }
        }
        printf("%c", (char)('a'+t));
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 已采纳回答 11月18日
  • 创建了问题 11月14日

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)