没有从 C 中的数组中获取正确的输出元素

Not getting the correct output elements from an array in C

我正在尝试编写一个代码,每次将一个数字输入一个数组,然后打印出数组元素的结果,但由于某种原因,我要么得到一个无限循环,要么打印出相同的数字。

void main() {

 char arr[SIZE];

 int k = 1;

 int i = 0;

 while (k != 0) {

   scanf("%d", &k);

   arr[i] = k;

   i++;
 }

 arr[i] = '[=10=]';
 int b = 0;

 while (b < i) {

   printf("elements are %d\n", arr[i]);
   b++;

 }

您想打印 arr[b] 不是 arr[i]

因此,您需要:printf("elements are %d\n", arr[b]);

正如您[当前]拥有的那样,打印 arr[i] 将始终打印 same 元素 and 它是 UB 因为在该点 i 超出了 arr 数组的末尾,因此该值将为 unknown/undefined.