在 C 语言中使用扫描输入变量初始化整数数组

Using Scanned-In Variables to Initialize an Integer Array in C

我正在尝试使用在 C 中扫描值的变量初始化一个整数数组。数组中的值与我扫描的值不匹配。它在数组中存储奇怪的数字,如 -1040000000 或 37299 .
任何帮助将不胜感激,我是编程新手!

int num1;
int num2;
int num3;

int intarr[3] = {num1, num2, num3};

printf("Enter 3 numbers.\n");
scanf("%d", &num1);
scanf("%d", &num2);
scanf("%d", &num3);

没有错误信息,但数字不是我输入的。例如,我扫描了数字 1、2、3。当我打印出数组每个索引处的值时,它打印出了我上面提到的奇怪数字。

您使用 num1num2num3 来初始化数组,然后再使用 scanf() 填充变量。您必须先扫描变量,然后将它们分配给数组。

int num1;
int num2;
int num3;

printf("Enter 3 numbers.\n");
scanf("%d", &num1);
scanf("%d", &num2);
scanf("%d", &num3);

int intarr[3] = {num1, num2, num3};

您应该启用编译器的完整警告,它可能会警告您在初始化变量之前正在使用它们。参见

您也可以完全跳过变量,直接扫描到数组中。

printf("Enter 3 numbers.\n");
int intarr[3];
scanf("%d", &intarr[0]);
scanf("%d", &intarr[1]);
scanf("%d", &intarr[2]);