我是C语言的新手,我想掌握基础知识,因此我编写了一个程序,该程序可以为您提供树号的均值,并且可以正常工作,但是当我尝试编写更通用的版本时,会输出接收:插入一系列数字:“数字的均值为-nan”。这意味着我什至不能插入数字。我现在不知道如何以更好的方式编写scanf部分。
这是代码:
#include <stdio.h>
int main() {
int p;
double n[p];
int i;
double sum = 0;
double m;
printf("Insert a series of numbers:\n");
for(int r = 0; r < p; r++) {
scanf("%lf", &n[r]);
}
for(i = 0; i < p; i++) {
sum += n[i];
}
m = sum / p;
printf("The mean of the numbers is %lf", m);
return 0;
}
int p;
您忘记初始化p
。由于p
是auto
matic存储类的对象,因此它具有不确定的值。
从而,
double n[p];
....
for(int r = 0; r < p; r++){
scanf("%lf", &n[r]);
}
for(i = 0; i < p; i++){
sum += n[i];
}
m = sum / p;
调用未定义的行为。
p
像fe一样初始化
int p = 5;
另外,不要忘记检查scanf()
是否成功分配了所有项目的返回值,例如:
if(scanf("%lf",&n[r]) != 1)
{
fprintf(stderr,"Error at scanning!");
return 1;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句