【发布时间】:2013-02-11 21:43:42
【问题描述】:
这是作业的一部分,但不是主要部分
我已经通过自己手动更改数据制作了main函数,但我真的不知道如何正确读取用户输入。
下面是输入的样子:
3
1 2 9
6
1 1 3 4 4 6
0
所以基本上第一个输入是下一个输入的 # 的大小。所以对于 3,数组大小为 3,其中元素为 [1,2,9],对于 6,数组大小为 6,元素为 [1,1,3,4,4,6]
当输入为0时,程序终止。
我认为通过使用 while 循环并说当 input[0] = '0' 并中断时,我可以终止程序,但我不知道如何将其他输入放入 char 数组中。
如您所见,有空格,因此 scanf 会将每个整数以不同的方式读取到 char 数组中。
在我得到 char 的输入后,我相信我可以使用 atoi 将其恢复为整数...
所以,请帮助我如何编写代码以正确获取用户输入...
也许这太模糊了:这是我想要的版本:
while(1)
{
scanf("%d", &ui);
if(ui == 0)
{
break;
}
else
{
size = ui;
int temp[size];
for(c = 0; c < size; c++)
{
scanf("%d", &input);
temp[c] = input;
}
}
}
第一个数组的输出很好,但之后由于 temp[size],它输出了一些奇怪的东西。有任何解决这个问题的方法吗?我希望数组的大小是用户想要的大小。 (例如,对于我上面写的输入:3 和 6)
【问题讨论】:
-
你已经标记了
scanf,那有什么问题呢?请向我们展示您的代码 -
您可以使用 scanf() 直接读取整数值。使用
"%d"转换说明符。
标签: c input while-loop scanf break