C编程中出现奇怪的答案

时间:2018-09-29 15:49:47

标签: c

我是编程新手,刚刚开始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对吗?

1 个答案:

答案 0 :(得分:1)

您从未初始化frequency。开始添加之前,它的开头是什么。答:没有人知道,但在您的示例中看起来像是8

因为您从未设置过它,所以它就是最后一次使用的内存。您确实应该在使用该值之前将其设置为0