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

Posted

技术标签:

【中文标题】无法弄清楚为啥我的 if 语句不起作用:( if array[i] << average)【英文标题】:Can't figure out why my if statement isn't working: ( if array[i] << average)无法弄清楚为什么我的 if 语句不起作用:( if array[i] << average) 【发布时间】:2019-10-28 03:36:58 【问题描述】:

我应该制作一个程序来获取 5 个年龄,计算平均值,然后显示有多少年龄高于平均值,有多少低于平均值。容易,我想。 但是,由于某种原因,无论我做什么,检查当前年龄 [] 元素是否小于平均值的 if 语句始终成立,而检查当前年龄 [] 元素是否大于平均值的 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 岁低于平均年龄。”

【问题讨论】:

你不是说ages[j] &lt; average吗? &lt;&lt; 运算符是位移运算符,在大多数情况下应计算为 true 【参考方案1】:

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

if (ages[j] > average)

【讨论】:

啊!非常感谢,这让我发疯了!

以上是关于无法弄清楚为啥我的 if 语句不起作用:( if array[i] << average)的主要内容,如果未能解决你的问题,请参考以下文章

无法弄清楚为啥“悬停”不起作用

如果拆分列表上的语句不起作用python3

为啥这个 IF NOT EXISTS 语句不起作用?

为啥我的简单 if 语句不起作用?

如果循环中的语句不起作用[重复]

为啥 Game Maker Studio 告诉我我的 if 语句不起作用?