刚入门,输入类型不符如何解决

如图,想while里套if写个判断余数的代码,结果不知道怎么解决输入类型不符,一直重复,求帮助。

img

img

在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;
    
} 

img

别用手机编译器