C编程中太多变量导致的错误

时间:2018-11-24 17:12:14

标签: c variables

我想对正负数进行算术平均,由用户给出数字。我想再增加2个变量,以计算正负两面求和了多少个数字,然后进行算术平均。

但是,当我将它们放在int x=0, q=0;时,程序将停止工作,而编译器不会出现任何错误。为什么?

the error I get

int total, i, numere[total], negativeSum = 0, positiveSum = 0;

printf("The number of digits you want to calculate the arithmetic amount: : ");
scanf("%d",&total);

for(i=0; i<total; i++){
    printf("Enter number %d : ",(i+1));
    scanf("%d",&numere[i]);
}

for(i=0; i<total ; i++){
   if(numere[i] < 0){
     negativeSum += numere[i];
            }else{
     positiveSum += numere[i];
   }
}

2 个答案:

答案 0 :(得分:1)

按照您的陈述顺序

int total, i, numere[total], negativeSum = 0, positiveSum = 0;

printf("The number of digits you want to calculate the arithmetic amount: : ");
scanf("%d",&total);

total未初始化,因此numere[total]未定义。编译器可能会将其完全删除。为了初始化total来定义numere,您必须在阅读total之后声明它:

int total, i, negativeSum = 0, positiveSum = 0;

printf("The number of digits you want to calculate the arithmetic amount: : ");
scanf("%d",&total);

int numere[total]; // now it is well-defined.

答案 1 :(得分:0)

在使用语句numere [total]分配内存之前,您需要知道total的值。

当您要求用户输入总值时,可以使用malloc作为替代方法。

solve()