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