簡體   English   中英

計算 C 中 n 個數字的數組的平均值

[英]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 由於pauto存儲器 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM