我是编程新手,刚刚开始 C 编程。然而,当我尝试这段简单的代码时,我得到了一个奇怪的答案。
char str[1000], ch;
int i, frequency;
printf(" Enter a string: ");
gets(str);
printf(" Enter the character you want to find the frequency of: ");
scanf(" %c", &ch);
for (i=0; str[i]!='\0'; i++){
if ( ch == str[i]){
++frequency;
}
}
printf(" The frequency of %c is %d", ch, frequency);
return 0;
我得到的答案是这样的:
Enter a string: This website is awesome
Enter the character you want to find the frequency of: e
The frequency of e is 12
我的编译器有问题吗?我正在尝试从在线源获取这段代码,所以它应该可以工作,对吧?所以应该是 4 对吗?
最佳答案
您从未初始化频率
。在你开始添加之前,它是从什么开始的。答案:没有人知道,但在您的示例中看起来是 8
。
因为您从未设置过它,所以它就是内存上次使用的内容。在使用该值之前,您确实应该将其设置为 0
。
关于c - C 编程中出现的奇怪答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52570016/