用C语言编写程序,急!求大神指教!

2025-04-08 16:30:02
推荐回答(2个)
回答1:

for(j='a';j<='z';j++) 遇到‘=’、‘+’就跳出循环啦,你认为这是否能统计整个字符串
建议 int ch[26];ch[0..25]=0;for(i=0; i='a' && s[i] <= 'z') ch[s[i] - 'a']++;

回答2:

你的想法 有点 奇怪 我不太明白,你的外循环为啥要从j='a';j<='z'
我说想下 做这种分类统计题目 一般的想法是先分类,再统计

分类
1 把你 输入的字符串按位拆开变成 单个的字符(存入变量J里面)
2 判断这个字符是不是 字母
3 如果是 则开始统计
统计
你希望用数组记录字母出现的次数,比方a字母出现一次就在记录在s[1]里面,b字母出现一次就在记录在s[2]里面,...z字母出现一次就在记录在s[26]里面,因此你只要定义int s[26] 就够了 。可是如何让字母与数组的下标对应起来?ascii表不是就是说这问题的吗?a的ascii码是97,而这对应的下标应该是1,所以你求了每个字母的ascii码,然后都减1,让相应的数组 去统计最后输出 数组中非零的 元素
s[j]=s[j]+1