为什么这个C程序将T 1输入改为T?
#include <stdio.h> int main (void) { int T,y,z; scanf ("%in",&T); for (T; T > 0 ; --T) { scanf ("%in",&y); } return 0; } 如果输入4,是否应该再输入4个?相反,它允许我输入5个整数!也尝试过其他数字. 解决方法
scanf中的格式字符串的工作原理如下(见
http://www.cplusplus.com/reference/cstdio/scanf/)
在你的scanf()中都有换行符.因此,第一次按Enter键时,scanf会忽略它. 一些答案告诉你修改循环……这是不正确的,你的循环没问题.以上就是让你头痛的问题.请尝试以下方法: #include <stdio.h> int main(int argc,char const *argv[]) { int T,z; scanf ("%i",&T); printf("Count is= %dn",T); for (T; T > 0 ; --T) { printf("T= %dn",T); scanf ("%i",&y); } return 0; } 编辑:感谢Daniel Fischer关于冲洗stdin的评论,我现在已将其删除.找到了这个解释(Using fflush(stdin)). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |