以错误的方式调用函数(序列的总和)

瓦利反渗透

所以我的程序读取数字直到值 0 然后它计算数字的总和。然后我必须编写一个显示总和的函数。另外,我的程序从键盘读取了一个数字“y”,我需要找到 sum/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

忙碌的蜜蜂

您调用了sum()两次,一次用于显示总和,另一次用于显示平均结果。但是因为你让用户在里面输入他们的价值观,所以sum()你会看到你描述的行为。

只需按原样运行您的程序并输入两次相同的数字序列。然后你应该看到总和和平均值。这只是为了让您了解您的程序。

解决方案是将 返回的总和存储sum()在一个变量中,并将其值赋给sumResult()result()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章