Неправильный вызов функции (сумма последовательности) - PullRequest
0 голосов
/ 20 октября 2019

Итак, моя программа считывает числа до значения 0, а затем вычисляет сумму чисел. Затем я должен написать функцию, которая отображает сумму. Кроме того, моя программа считывает число «y» с клавиатуры, и мне нужно найти результат суммы / y. Например, если результат суммы равен 10, и я ввожу y = 3, результат функции должен возвращать результат 10/3.

Так что после того, как программа отобразит результат суммы, она попросит меня снова ввести значения до 0, а затем закроется.

#include <stdio.h>


// Shows a message with what the program is doing.
void ShowIntroduction(void)
{
    printf("My program finds a sum etc");
}


// find the sum of the numbers enter until 0 value
int sum(void)
{
    int s=0,n;
    do
    {
        scanf("%d",&n);
        if (n > 0)
            s=s+n;
    }
    while(n != 0);


   return s;
}


// show the result
void sumResult(int a)
{
    printf("The sum is %d", a);
}

// find the result of sum/y
double result(int s,int y)
{
        double res;
        res=s/(double)(y);
        return res;
}

int main()
{
    int y;
    scanf("%d",&y);
    ShowIntroduction();
    sumResult(sum());
    result(sum(),y);

    return 0;
}

Я почти уверен, что нетвызовите функцию правильным способом.

Программа отображает сумму, но не результат суммы / y

1 Ответ

0 голосов
/ 20 октября 2019

Вы звоните sum() дважды, один для отображения суммы и один для отображения среднего результата. Но поскольку вы позволяете пользователям вводить свои значения внутри sum(), вы видите описанное вами поведение.

Просто запустите вашу программу как есть и введите два раза одинаковую последовательность чисел. Тогда вы должны увидеть как сумму, так и среднее значение. Это просто для того, чтобы вы поняли вашу программу.

Решение состоит в том, чтобы сохранить сумму, возвращаемую sum() в переменной, и присвоить ее значение sumResult() и result().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...