簡體   English   中英

無法弄清楚為什么我的 if 語句不起作用:( if array[i] << average)

[英]Can't figure out why my if statement isn't working: ( 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 年齡高於平均年齡”的 output。 “y 年齡高於平均年齡”

相反,我得到:“平均年齡是(平均)”“0 年齡高於平均年齡。” “5歲低於平均年齡。”

您正在使用位移而不是大於/小於

if (ages[j] > average)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM