如何平均这些用户输入?

时间:2017-02-22 23:08:52

标签: c loops while-loop

程序按预期执行,提示用户输入年龄,直到用户输入" -1"。一旦用户输入此程序,该程序将告诉您最大,最小和平均。除非我不确定如何平均输入,否则我一切正常工作,我们非常感谢!

更新:感谢所有帮助过的人,我已经更新了代码。唯一剩下的就是我没有得到正确的平均值。我已经包含了更新的代码。

#include<stdio.h>
int main()
{
    int n, large, small;
    int sumOfAges = 0;
    double averageAge = 0.0;
    int Num = 0;
    printf("Enter an age: \n");
    scanf("%d", &n);
    large = n;
    small = n;



    while(n != -1)
    {
        printf("Enter an age: \n");
        scanf("%d",&n);
        if (n>large)
        large = n;
        if(n < small && n != -1)
        small = n;
        sumOfAges += n;
        Num++;
    }

     averageAge = (sumOfAges/Num);

    printf("\n The largest age is %d", large);
    printf("\n The smallest age is %d", small);
    printf("\n The average age is %lf", averageAge);
    return 0;
}

1 个答案:

答案 0 :(得分:2)

在您的while语句中,您应该跟踪输入的数量和输入的总值

 int numberOfInputs = 0;
 int totalValue = 0;

 while(n != -1)
 {
     numberOfInputs++;
     totalValue += n;
     // Your other While-loop code here
 }

通过将totalValue除以numberOfInputs得到的平均值。

float Average = (float)totalValue/numberOfInputs;

注意我将它转换为浮点数,因此计算是以浮点而非整数算术完成的。