C语言,输入一串字符,统计其中每个字母出现的次数,求纠正,急

如题所述

1、你的scanf中的输入的是字符串不能用%d的,要用%s 来代替
2、在for循环中i变量使用之前需要声明
3、if语句不能这样写 要分开来写的'a' <= s[i] && 'z' >= s[i] 和 'A'<=s[i] && 'Z'>=s[i]
4、最后一个for语句应该是i<26,加上=号 数组会溢出
5、最后的printf中的语句应该是printf("%c:%d\n", i+'A', letters[i]); "A"是字符串,'A'才是字符,这样就能正确统计字符个数了,希望对你有帮助追问

为什么?用s%的话,输出不也要用s%了?

追答

输入的是一个字符串 输出的是字符 字符和数字底层编码是一致的

追问

其它地方呢?

追答

应该就这5个地方 改完后 跑了 没问题

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-11

输入错了,两个比较错了:

//输入可以用 scanf("%s",s);
//或者gets(s);
if(s[i]>='A' && s[i]<='Z')
    ...
else if (s[i]>='a' && s[i]<= 'z')
   ...//不能像数学一样直接连写的
//输出是对的
//下次有问题如果可以请直接贴代码,方便帮你调试检查

追问

那要怎么做吖😊

其它地方呢?

本回答被提问者和网友采纳
相似回答