我想对正负数进行算术平均,由用户给出数字。我想再增加2个变量,以计算正负两面求和了多少个数字,然后进行算术平均。
但是,当我将它们放在int x=0, q=0;
时,程序将停止工作,而编译器不会出现任何错误。为什么?
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];
}
}
答案 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()