Простая программа на C, некоторые вопросы о функциях - PullRequest
0 голосов
/ 15 октября 2019

Я новичок в программировании на C, и мне нужно решить, в какой момент я застрял.

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

Моя программа должна быть построена с функциями. Я получил имя функции с параметрами и построил их так:

Ниже приведены функции, которые я закодировал.

#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;
}

Моя проблема в том, что я не знаю, как выполнить функциив основном. Как закончить программу, какие ошибки я допустил? Как их исправить?

1 Ответ

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

Вы, вероятно, хотите что-то такое:

#include <stdio.h>   // <<< don't forget the herader files, they are essential!!

// 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)   //<<< n different from 0, not > 0
            s=s+n;
    }
    while(n != 0);

   return s;   // <<<< return the result here!!
}

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

int main()
{
    ShowIntroduction();
    sumresult(sum());
}

Я удалил ненужные функции и комментарии и переименовал функцию f1 в более осмысленное имя.

Я предлагаю вам прочитать главу, посвященнуюс функциями в учебнике C вашего новичка.

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