编写c语言中,为甚么要多输入一个数程序才往下执行

2024-12-25 06:43:30
推荐回答(4个)
回答1:

请理解scanf函数的结束条件:
scanf函数__仅在每一个数据域均有数据,并按回车后__结束。

scanf("%10d%10f\n",&num[a],&x[a]);
这一句数据域有3个:%10d、%10f 和 \n!
这里\n是作为数据域,所以必须在遇到__第二个__\n时scanf才结束。
也就是说,你必须多输入一个回车才能使scanf结束。
至于输出为什么又是正确的,那是scanf并不负责清理输入缓冲区,
即不清理多余的输入,多余的输入可以作为下次的输入,包括\n!
故你可以得到正确输入。

正确方法如下:
scanf("%10d%10f",&num[a],&x[a]);
即,把 \n 去除。

如果还不明白,欢迎继续提问,不过建议google搜索_scanf函数_。

回答2:

scanf("%10d%10f\n",&num[a],&x[a]); 此语句中的10为指定的输出字段的宽度。如果数据的位数小于10,则左端补空格。若大于10,则按照实际位数输出。你在这里要求输入的是9个数,而输出的宽度为10,所以得输入10个才能正常运行。你也可以把%10d改为%9d.

回答3:

你定义的是数组啊,数组是从0开始计算的。你把《=改《就可以了的

回答4:

有完整程序更好