c++ - 无法弄清楚为什么我的 if 语句不起作用:( if array[i] << average)
问题描述
我应该制作一个程序来获取 5 个年龄,计算平均值,然后显示有多少年龄高于平均值,有多少低于平均值。容易,我想。但是,由于某种原因,无论我做什么,用于检查当前年龄 [] 元素是否小于平均值的 if 语句始终成立,而用于检查当前年龄 [] 元素是否大于平均值的 if 语句总是抱错,我一辈子都想不通为什么。也许是因为现在是凌晨 3 点 30 分,我的大脑已经麻木了。
我尝试为每次迭代添加一个名为 age = age [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岁低于平均年龄。”
解决方案
您正在使用位移而不是大于/小于
if (ages[j] > average)
推荐阅读
- python - python OpenCV:将 png 转换为 16 位 RGBA png 图像以用于电子纸显示
- flutter - 如何在扩展面板的正文中显示列表?
- macros - 如何使结构的宏生成与结构匹配的函数方法?
- regex - 行之间的正则表达式匹配
- python - Django Admin 不会在 Docker 中加载 CSS/JS 文件并将请求设置为已取消
- api - 初始化 APIs Explorer
- php - 通过 Google 服务帐户 PHP 访问 Google 表格
- node.js - Angular 10 与 nodejs - http 客户端 POST
- angular - 如何在角度获取请求中的查询参数中传递电子邮件
- c++ - 如何在 2 张地图上保持同步循环?