c语言用while配合scanf控制数组输入数值出现了问题

如图,k等于5,应该可以输入5次,为什么一直输入了10次才停下

第1个回答  2017-03-03
这是因为你数组定义的是A[10],需要10个元素
因此输入10次。
你把A[10]改为A[5],再看是不是输入5次。
第2个回答  2017-03-03
不可能有10次,但不是5次而是6次!
第3个回答  2017-03-03
K不可能是5,你这句有问题scanf("&d",&k);有问题,应该是"%d"本回答被提问者采纳

c语言用while配合scanf控制数组输入数值出现了问题
这是因为你数组定义的是A[10],需要10个元素 因此输入10次。你把A[10]改为A[5],再看是不是输入5次。

c语言中数据输入错误了如何提示输入错误并实现要求重新输入
break; \/\/ 输入正确后退出循环 } return 0;} 在上述示例中,我们使用了`while`循环来持续请求输入直到获得一个有效的整数。使用`scanf()`函数来尝试读取输入,并通过`scanf()`的返回值检查是否成功读取了一个整数。如果读取失败,即`scanf()`返回值不等于1,表示输入的格式不正确,程序将打印错误提...

c语言while判断和scanf返回值的问题
(scanf("%d%d\\n", &m, &n), m) 相当于是一个逗号表达式,它的值是m的值

C语言关于scanf输入错误循环的错误
int n,j;do{ j = scanf("%d",&n);if ( j != 1)printf("input error !\\n");fflush(stdin); \/\/清除键盘缓冲区试一下。}while(j!=1);

c语言中用scanf函数先输入字符串,后输入数值。输出时会出现错误的数值...
include<stdio.h> int main(){ char str[50];int a;scanf("%s%d",str,&a,&a);printf("str=%s\\n",str);printf("a=%d\\n",a);return 0;} 你下面的代码我给你改了一下,把%s%d之间的空格去掉了,然后加了一个&a,通过两次赋值,消除缓冲中回车的干扰 ...

【C语言】关于while中的scanf被跳过问题
while(a>0) 因为a=1的 所以程序就一直在while里了 字母的 %d形式是该字母的ASCALL码。自己翻看ASCALL码表就知道了 scanf执行错误

C语言中,输入错误请重新输入
while后多了个分号,while这句不执行,但是之后的花括号里面语句依然按序执行。去掉分号就是你想要的了

while语句中scanf()的问题
scanf("%d%d", &a, &b);如果a和b都被成功读入,那么scanf的返回值就是2 如果只有a被成功读入,返回值为1 如果a和b都未被成功读入,返回值为0 如果遇到错误或遇到end of file,返回值为EOF。且返回值为int型.所以,第一个问题: 输入点(.),遇到错误,返回值为 EOF。不等于 1, 退出循环...

c语言的问题关于while(scanf(“%d",&sum)!=1)
则不会读取也不会删除,之后ABC还在缓冲区内。scanf不停止:如果缓冲区内有内容,scanf是不会停下来等你输入的,因为ABC一直在缓冲区内,所以造成了一直不停重复循环。scanf的返回值:scanf如果成功返回的是输入的个数,当你输入ABC的时候,scanf失败,返回0,则条件一直成立,所以造成了死循环 ...

C语言 scanf返回值以及while问题,大神求解,么么哒~输入字母不能停止循...
关键问题在int d=scanf("%lf",&a);语句上。每次执行语句:int d=scanf("%lf",&a);时都会创建变量d,并且将scanf的返回值赋值给新建的变量d。第7行创建的d变量才while(d>0)语句执行时真正判断的d变量。第13行创建的d变量不是while(d>0)语句判断的d。验证方法:可以在13行前后各插入一个...

相似回答