Онлайн компилятор C

#include <stdio.h> int main() { int A[2]; int A_save[2]; for (int i = 0; i < 2; i++) { scanf("%d", &A[i],&A_save[i]); } printf("%d",A_save[1]); return 0; }
这段代码试图读取两个整数并保存到两个数组中,但存在明显的错误。

- 代码中 `scanf` 的格式字符串只包含一个 `%d`,却提供了三个参数(`&A[i]` 和 `&A_save[i]`),这会导致未定义行为。`scanf` 会按照格式字符串中的转换说明依次读取输入,多余的参数不会被使用,但 `A_save` 数组实际上从未被正确赋值。
- 程序最后只打印了 `A_save[1]`,但由于 `A_save` 没有被初始化或正确赋值,输出结果不可预测。

- 检查 `scanf` 的格式字符串和参数数量是否匹配。每个 `%d` 对应一个要读取的整数,你需要为每个要存储的变量提供一个对应的地址参数。
- 思考一下:你希望从输入中读取两个整数,分别存入 `A[0]` 和 `A[1]`,同时还要将同样的值存入 `A_save` 吗?如果是,那么需要明确每次读取时如何分配这些值。