我正在尝试解决SPOJ问题。我被困在这里。
对于输入,它会要求我将以下内容作为输入
下一行包含n个元素,ai(1< = i< = n)以空格分隔。
我可以使用循环并输入用户通过scanf单独给出的每个元素。但根据问题标准,我假设我们需要在一行中立即通过scanf获取输入。像scanf(“%d%d%d”,& a1& a2 e.t.c)。
但范围超过10 ^ 6,我不知道如何通过scanf在一行中动态输入多个值。
答案 0 :(得分:1)
你可以像你说的那样运行你的迭代,因为scanf
并不关心什么类型的空格分隔整数输入。
所以:for (i = 0; i < n; ++i) scanf("%d", &array[i]);
适用于以下类型的输入:
3 2 1 2 3 8
以及类型
3
2
1
2
3
8
答案 1 :(得分:0)
无论您是否在一行中输入数字,这都将起作用,因为scanf忽略了空格
int arr[1000001]; // Take an array to store the inputs
for(i=1;i<=n;i++)
{
scanf("%d",&arr[i]);
}