一个用来求输入的5个整数的和的C语言程序,如果输入一个字母则会出现下面的情况,为什么?求大神指点!

2025-04-08 08:01:31
推荐回答(1个)
回答1:

你用%d格式,输入一个字符, 这时候scanf会返回失败的,k值不会变。
因为失败,输入设备的缓冲区里面的缓冲内容也不会被清除,就导致后面的scanf时候会直接取缓冲数据,执行错误。你可以在循环里面加一个清除的动作fflush(stdin)或者getchar()之类的;可以把输入缓冲清除。
你输入的是一个3,一个5 ,后面4次的k值都是5,所以是3+20=23.