无法弄清楚为什么我的if语句不起作用:(if array [i] << average)

时间:2019-10-28 03:36:58

标签: c++ arrays loops average

我应该编写一个程序,以获取5个年龄段,计算平均值,然后显示有多少年龄段高于平均年龄,有多少年龄段低于平均年龄。容易,我想。 但是,由于某种原因,无论我做什么,检查当前ages []元素是否小于平均值的if语句始终成立,而检查当前ages []元素是否大于平均值的if语句始终成立。总是假,我无法为自己的生活弄清楚原因。 也许是因为这是凌晨3:30,我的脑袋变得沉闷了。

我尝试为每次迭代添加一个名为age = ages [j]的变量。 我还尝试过在上下左右的if语句之间进行交换,但这也不会改变任何内容。

#include <iostream>
using namespace std;
void main() {
    int ages[5];
    int total = 0;
    int average = 0;
    int above = 0;
    int below = 0;
    for (int i = 0; i < 5; i++) {
        cout << "Enter an age.";
        cin >> ages[i];
        cout << ages[i];
        total += ages[i];
    }
    average = total / 5;
    for (int j = 0; j < 5; j++) {
        if (ages[j] >> average) {
            cout << ages[j];
            above++;
        }
        else if (ages[j] << average) {
            cout << average;
            cout << ages[j];
            below++;
        }
    }
    cout << "The average age is " << average << "." << endl;
    cout << above << " ages are above the average age." << endl;
    cout << below << " ages are below the average age." << endl;
}

我希望输出 “平均年龄是(平均)” “ x年龄高于平均年龄。” “ y个年龄段高于平均年龄”

相反,我得到: “平均年龄是(平均)” “ 0岁以上是平均年龄。” “ 5岁以下是平均年龄。”

1 个答案:

答案 0 :(得分:2)

您使用的是移位而不是大于/小于

if (ages[j] > average)