在C中计算n个数字的数组的平均值
Calculate the mean of an array of n numbers in C
我是 C 的新手,我正在努力掌握基础知识,所以我编写了一个程序,它可以为您提供树数的平均值并且它可以工作,但是当我尝试编写一个更通用的版本时它,作为我收到的输出:插入一系列数字:"The mean of the numbers is -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 存储 class 的一个对象,它具有不确定的值。
因此,
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;
调用 undefined behavior.
像f.e一样初始化p
。
int p = 5;
如果所有项目都已成功分配,也不要忘记检查 scanf()
的 return 值,例如:
if(scanf("%lf",&n[r]) != 1)
{
fprintf(stderr,"Error at scanning!");
return 1;
}
我是 C 的新手,我正在努力掌握基础知识,所以我编写了一个程序,它可以为您提供树数的平均值并且它可以工作,但是当我尝试编写一个更通用的版本时它,作为我收到的输出:插入一系列数字:"The mean of the numbers is -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 存储 class 的一个对象,它具有不确定的值。
因此,
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;
调用 undefined behavior.
像f.e一样初始化p
。
int p = 5;
如果所有项目都已成功分配,也不要忘记检查 scanf()
的 return 值,例如:
if(scanf("%lf",&n[r]) != 1)
{
fprintf(stderr,"Error at scanning!");
return 1;
}