[英]Calculate the mean of an array of n numbers in C
我是 C 的新手,我正在努力掌握基礎知識,所以我編寫了一個程序,它可以為您提供樹數的平均值並且它可以工作,但是當我嘗試編寫它的更通用版本時,如 output I接收:插入一系列數字:“數字的平均值是-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
存儲器 class 的 object,因此它具有不確定的值。
因此,
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;
調用未定義的行為。
像 fe 一樣初始化p
int p = 5;
如果所有項目都已成功分配,也不要忘記檢查scanf()
的返回值,例如:
if(scanf("%lf",&n[r]) != 1)
{
fprintf(stderr,"Error at scanning!");
return 1;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.