查找输入值的平均值,最大值和最小值

时间:2015-10-17 13:21:13

标签: c++ average

问题的第一部分是编写一个程序:

  

提示用户输入整数值并保持运行总计。

#include<iostream>
using namespace std;

int main()
{
    float n, sum=0.0, minimum=1.0, maximum=0.0, average;
    int i = 0, x;

    while(n != 0)
    {
        cout << "Enter number" << (i+1) << " :";
        cin >> n;

        if(n <= 0)
            break;

        sum += n;
        i++;

        if(n > maximum)
        {
            maximum = n;
        }

        if(n <= minimum)
        {
            minimum = n;
        }

        x = x + (i + 1);
    }

cout << "Total=" << sum << endl;

average = sum / x;

cout << "Average=" << average << endl;
cout << "Maximum=" << maximum << endl;
cout << "Minimum=" << minimum << endl;
return 0;
}

,第二部分是:

  

修改上一个程序,打印出读入的最大和最小数字以及平均值。同时更改提示以显示仍要输入的数字数。

{{1}}

我的问题是我无法计算平均值并显示仍要输入的数字的数量。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

问题是你将和除以x。你为什么需要这个x?我是你输入的对象的数量,只是将总和除以i;
还有一个bug,你定义变量n并且不设置值,你想要将它与0进行比较。它可能工作不正确。

    #include<iostream>
    using namespace std;
    int main()
    {
        float n = 1,sum=0.0,minimum=1.0,maximum=0.0,average;
        int i=0;

        while(n!=0)
        {
            cout<<"Enter number"<<(i+1)<<" :";
            cin>>n;
            if(n<=0)
                break;
            sum+=n;
            i++;
            if(n>maximum)
            {
                maximum=n;
            }

            if(n<=minimum)
            {
                minimum=n;
            }
        }

        cout<<"Total="<<sum<<endl;

        average=sum/i;

        cout<<"Average="<<average<<endl;
        cout<<"Maximum="<<maximum<<endl;
        cout<<"Minimum="<<minimum<<endl;
        return 0;
    }