在线编译器 C

#include <stdio.h> enum { SIZE = 10 }; int main() { int A[SIZE]; int n; for (int i = 0; i < SIZE; i++) { scanf("%d", &n); if (n % 10 == i){ A[i] = n; } } for (int i = 0; i < SIZE; i++) { printf("%d ", A[i]); } return 0; }
这段代码试图读取10个整数,并将那些个位数等于数组索引的数字存入对应位置,最后输出整个数组。但代码存在逻辑问题。

- 数组A的元素在未被赋值时是未初始化的,输出时可能显示随机值。你需要确保数组所有元素都有确定的值。
- 当前代码只会在输入数字的个位数恰好等于当前循环索引i时才赋值,否则该位置保持未初始化。这导致最终输出可能包含垃圾值。

- 考虑如何让数组每个位置都能被赋值,即使输入的数字不匹配当前索引。你可能需要先初始化数组,或者调整赋值逻辑。