我正在创建一个程序,它将三个不同的标记存储为数组。当我运行程序时,我收到以下错误:
Enter marks: 95
Enter marks: 64
Segmentation fault
这是我写的程序:
#include <stdio.h>
int main(void) {
int num[3];
int i;
float total;
for (i=0;i<4;i++) {
printf("Enter marks: ");
scanf("%d", num[i]);
}
total = num[0] + num[1] + num[2] / 300 * 100;
printf("Average: %.2f", total);
}
答案 0 :(得分:0)
您的代码存在两个问题:
第一个(正如其他人所说)是你需要scanf
进入一个位置:
scanf("%d", &num[1]);
不这样做会导致分段错误。
您还需要获得匹配的数组大小和循环限制。
您已将数组定义为:
int num[3];
,其索引为0,1,2。
然而你的循环
for (i=0; i<4; i++)
从0..3迭代。
修复第一个问题后,您将引用无效的num[3]
,并会导致其他错误。