为什么我的代码会打印每个号码?

时间:2016-03-16 22:46:26

标签: c++ arrays average

我编写的代码从用户读取10个整数,将它们存储在数组中,然后计算并打印平均值。它还应该打印数组中大于或等于平均值​​的数字。相反,我的代码打印出数组中的每个数字。我该如何解决这个问题?

此外,如果有人对如何简化此代码有任何提示,那么也会非常感激。

#include <iostream>

using namespace std;

int main()
{
    const int ENTER_NUM = 10;
    int integer[ENTER_NUM];

    cout << "Enter "<<ENTER_NUM<<" numbers: "<<endl;
    cin >> integer[0];
    cin >> integer[1];
    cin >> integer[2];
    cin >> integer[3];
    cin >> integer[4];
    cin >> integer[5];
    cin >> integer[6];
    cin >> integer[7];
    cin >> integer[8];
    cin >> integer[9];

    int sum;
    sum = integer[0]+integer[1]+integer[2]+integer[3]+integer[4]+integer[5]+integer[6]+integer[7]+integer[8]+integer[9];

    int average;
    average = sum/ENTER_NUM;

    cout<<"Average is: "<<average<<endl;

    for(int i=0; i<10; i++)
    {
            if (integer[i]>=average);
            cout<<"Number in array greater than or equal to the average: "<<integer[i]<<endl;
    }

return 0;
}

2 个答案:

答案 0 :(得分:5)

在循环中的;之后,您有一个虚假的if

如果您总是在{}和类似的控制结构上使用if而不是依赖&#34;一行异常&#34;,则此错误不太可能发生。

答案 1 :(得分:3)

if (integer[i]>=average);最后包含一个分号,删除了它之后控制print语句的能力。打开编译器的警告级别,你会收到有关此

的消息