C ++数组循环平均值

时间:2013-08-30 09:36:53

标签: c++ arrays loops average

我目前正在尝试使用C ++。到目前为止,我已经学会了一个程序,它允许我输入10个变量以及5个已经赋值的变量,然后找到这些数字的平均值。但是我无法弄清楚如何做到这一点,我为数组做了一个for循环,但似乎没有找到答案的平均值。以下代码有什么问题?这就是我到目前为止所做的:

#include <iostream>

using namespace std;

int cole[10];
int sum = 0;
int main()
{
    int a = 10;
    int b = 10;
    int c = 10;
    int d = 10;
    int e = 35;
    cout << "Please input ten numbers, one at a time" << endl;
    cin >> cole[0];
    cin >> cole[1];
    cin >> cole[2];
    cin >> cole[3];
    cin >> cole[4];
    cin >> cole[5];
    cin >> cole[6];
    cin >> cole[7];
    cin >> cole[8];
    cin >> cole[9];
    cout << "There will now be 5 assigned variables, so that we have 15 variables" << endl;

    for(int x = 0; x < 10; x++ )
    {
        int sum = 0;
        cout << cole[x] << " ";
        sum += cole[x];
        cole[x]++;
    }
    sum += cole[0];
    cole[0]++;
    cout << "and " << a << " " << b << " " << c << " " << d << " " << e << endl;
    cout << "The average of these numbers is: ";
    sum = sum + a + b + c + d + e;
    cout << sum / 15;

}

提前致谢

6 个答案:

答案 0 :(得分:1)

请尝试以下代码:IDEONE

#include <iostream>

using namespace std;

int cole[10];
int sum = 0;

int main()
{
    int a = 10;
    int b = 10;
    int c = 10;
    int d = 10;
    int e = 35;
    double avg = 0;
    cout << "Please input ten numbers, one at a time" << endl;
    for (int i=0;i<10;i++) {
        cin >> cole[i];
    }
    cout << "There will now be 5 assigned variables, so that we have 15 variables" << endl;

    for(int x = 0; x < 10; x++ )
    {
        cout << cole[x] << " ";
        sum += cole[x];
    }
    cout << "and " << a << " " << b << " " << c << " " << d << " " << e << endl;
    cout << "The average of these numbers is: ";
    sum = sum + a + b + c + d + e;
    avg = sum / 15.0;
    cout << avg;

}

请记住,平均值不应该是整数值 - 它会将数字四舍五入到底线。并且记住你可以在循环中输入数组中的每个值,而不是一个一个地输入。你还在循环中一次又一次地声明了“int sum = 0”,因此在循环内部看不到全局和。我也删除了一些不需要的代码。你可以看看,欢呼

答案 1 :(得分:1)

    #include <iostream>

using namespace std;

int coleCount = 10;
int cole[coleCount];
int sum = 0;
int main()
{
    int a = 10;
    int b = 10;
    int c = 10;
    int d = 10;
    int e = 35;

    cout << "Please input ten numbers, one at a time" << endl;

    for(int i = 0; i < coleCount; i++)
    {
      cin >> cole[i];  
    }

    cout << "There will now be 5 assigned variables, so that we have 15 variables" << endl;

    for(int i = 0; i < coleCount; i++ )
    {
        cout << cole[i] << " ";
        sum += cole[i];
        //cole[x]++; why are you incrementing this?
    }
    //sum += cole[0]; why?
    //cole[0]++; why?
    cout << "and " << a << " " << b << " " << c << " " << d << " " << e << endl;
    cout << "The average of these numbers is: ";
    sum += (a + b + c + d + e);
    cout << sum / 15;

}

答案 2 :(得分:0)

摆脱循环中的int sum = 0cole[x]++;。也是如此失败:

sum += cole[0];
cole[0]++;
循环后

答案 3 :(得分:0)

int sum = 0;

这需要在循环之外,你不断重置总和。

答案 4 :(得分:0)

您宣布sum两次。从for循环中删除声明!

for(int x = 0; x < 10; x++ )
{        
    cout << cole[x] << " ";
    sum += cole[x];
    cole[x]++;
}

答案 5 :(得分:0)

固定代码:

#include <iostream>

using namespace std;

int cole[10];
int sum = 0;
int main()
{
    int a = 10;
    int b = 10;
    int c = 10;
    int d = 10;
    int e = 35;
    cout << "Please input ten numbers, one at a time" << endl;
    cin >> cole[0];
    cin >> cole[1];
    cin >> cole[2];
    cin >> cole[3];
    cin >> cole[4];
    cin >> cole[5];
    cin >> cole[6];
    cin >> cole[7];
    cin >> cole[8];
    cin >> cole[9];
    cout << "There will now be 5 assigned variables, so that we have 15 variables" << endl;


    int sum = 0;  //initialize sum outside the for loop
    for(int x = 0; x < 10; x++ )
    {
        cout << cole[x] << " ";
        sum += cole[x];
        cole[x]++;
    }
    //sum += cole[0];  //this seems unnecessary
    //cole[0]++;
    cout << "and " << a << " " << b << " " << c << " " << d << " " << e << endl;
    cout << "The average of these numbers is: ";
    sum = sum + a + b + c + d + e;
    cout << sum / 15;

}