Рассчитать среднее значение массива из n чисел в C - PullRequest
1 голос
/ 18 апреля 2020

Я новичок в 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;
}

1 Ответ

2 голосов
/ 18 апреля 2020
int p;

Вы забыли инициализировать p. Поскольку p является объектом класса хранения auto mati c, он имеет неопределенное значение.

Таким образом,

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...