【发布时间】:2018-10-08 09:41:23
【问题描述】:
我想在一行中有未知数量的输入。例如,用户可以输入: “答案:1 2 3 4 5” scanf() 会将这五个数字存储到一个数组中。问题是程序不知道会有多少输入。
#include <stdio.h>
int main()
{
int i;
int input[4];
scanf("ans: " for(i = 0, i < 3,i++){scanf(" %d", &input[i]);};
return 0;
}
对不起,我对编码完全陌生,写这个的正确方法是什么?或者这是不可能的? 谢谢:)
【问题讨论】:
-
你不能。对于这么少的值,为什么不直接使用
scanf("ans: %d %d %d %d", &input[0], &input[1], &input[2], &input[3])?对于较大数量的值,请单独阅读"ans: "(如果您真的希望用户输入该值),然后对数字输入使用单独的循环。并且不要忘记检查scanf返回的内容! -
您将 scanf 放在循环中,而不是相反。你是在问如何把赛道放在你的车里,而不是在问如何把你的车放在赛道上。如果您事先不知道会有多少输入,则通常首选 while 循环。
-
什么会决定输入的实际数量?数组的大小?