如图,想while里套if写个判断余数的代码,结果不知道怎么解决输入类型不符,一直重复,求帮助。
在while循环里面,最开始的地方清空下缓冲区即可;
因为如果输入的非数字字符,scanf()会将这个非数字字符放回输入流,下次仍然会读取这个非数字字符,然后返回的一直是0,就会一直执行else分支,导致重复输出这个错误提示信息,所以在scanf()前清空下缓冲区即可。
修改如下:
参考链接:
https://blog.csdn.net/weixin_34724366/article/details/116647522
#include <stdio.h>
#include <stdlib.h>
int main(void){
int i;
while(1){
// https://blog.csdn.net/weixin_34724366/article/details/116647522
fflush(stdin); // 清空缓冲区
if(scanf("%d",&i)){
printf("%d\n",i%2);
}else{
printf("你输入的是什么玩意\n");
continue; // 这个可以去除
}
}
return 0;
}
别用手机编译器