我是编程新手,刚刚开始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对吗?
答案 0 :(得分:1)
您从未初始化frequency
。开始添加之前,它的开头是什么。答:没有人知道,但在您的示例中看起来像是8
。
因为您从未设置过它,所以它就是最后一次使用的内存。您确实应该在使用该值之前将其设置为0
。