【发布时间】:2015-11-11 19:20:12
【问题描述】:
我正在尝试实时打印添加到数组中的元素 .
一切似乎都很好,但是
例如
我将数字 1 2 3 相加
但结果是: 9966656 2686588 1 2 3
我不知道为什么它也打印 9966656 2686588 而不仅仅是 1 2 3
int numbers[100] , c , x;
char answer;
puts("Please insert a value");
GO:
scanf("%d", &numbers[c]);
getchar();
puts("Do you want to add another value? y/n");
scanf("%c",&answer);
if (answer == 'y') {
c = c + 1;
puts("Please insert another value");
goto GO;
} else {
x = c;
for (c = 0; c < x + 1; c++) {
printf("%d ",numbers[c]);
}
}
*======================
如果你有什么不明白的地方请告诉我*
【问题讨论】:
-
在捕获输入之前,您不会丢弃空白,还要注意 goto 的使用:-P
-
尝试在顶部初始化
c = 0。 -
c在您扫描numbers[c]时未初始化。将其设置为 0 并确保当c达到 100 时不会溢出数组。 -
如果您认为需要
goto,您可能会发现代码组织方面的改进空间。 -
有很多方法可以避免 goto。