【发布时间】:2016-06-19 08:53:36
【问题描述】:
if 语句永远不会触发,因此在第二个 for 循环中所有值都打印为 0。
#include <stdio.h>
int main()
{
char string[100] = "this is A TEST";
int count[26] = {0};
int i = 0;
for(i = 0; string[i] != '\0'; i++){
if((string[i] + '0') == (i + 97) || (string[i] + '0') == (i + 65)){
count[i]++;
}
}
for(i = 0; i < 26; i++){
printf("%c: %d \t", i+97, count[i]);
}
return 0;
}
【问题讨论】:
-
添加
'0'而不是普通的0,你想达到什么目的? -
@Pavan 仍然无法正常工作,试图打印出字母 a-z 以及输入字符串中每个字母出现的次数
-
你想达到什么目的?
-
停止编写复杂的复合布尔表达式。使用中间临时布尔值,然后您可能有一些机会实际调试自己的代码。另外,学习如何使用括号。
-
使用
ctypes.h。至少不要使用幻数
标签: c arrays for-loop char integer