你上面有一句scanf("%d %d %d",&a,&b,&c);你输入三个值,按回车,此时把一行字符连同换行符一起送入缓冲区,缓冲区检测到有换行符,就把一行字符转换为数字送入系统内存,而换行符'\n'还留在缓冲区里,换行符(line feed)ASCII码是10,你没清除缓冲区,又再用一个scanf输入ch,ch就会先检查缓冲区,发现里头有个换行符,就把换行符对应的ASCII码赋给了ch解决这个问题的常见办法有以下三种:1:scanf("%c",&ch);前面加flushall();或fflush(stdin);2:scanf("%c",&ch);改为scanf(" %c",&ch);%c前面加一个空格3:scanf("%... |