1 #include <stdio.h> 2 int main(void) 3 { 4 char c; 5 6 scanf("%c", &c); 7 while (c != 'J') { 8 printf("No!\n"); 9 scanf("%c", &c); 10 } 11 return 0; 12 }
对scanf()的认知不足。
我见过某网站的C语言视频教程里的教师写了一个这样的程序(上)
然后他发现程序有问题,输入除J外的字母后会出现两行的No!,当
时他不知道怎么回事,没有办法,就打马虎眼过去了。
你知道怎么修改这个错误吗?
我见过很多人改,大多数人都是加了好长的代码。
其实呢,只要把scanf("%c", &c);改成scanf(" %c", &c);,这样就忽略了之前的空白字符,问题就被解决了。
如果你不知道怎么回事,说明你的C语言学得不扎实。