Я должен был составить программу для 5 возрастов, рассчитать среднее значение, а затем показать, сколько возрастов выше среднего и сколько ниже. Полегче, подумал я. Однако по какой-то причине, независимо от того, что я делаю, оператор if для проверки того, что текущий элемент ages [] меньше среднего, всегда остается верным, а оператор if для проверки, больше ли текущий элемент ages [] среднего значения. всегда держу ложь, и я не могу на всю жизнь понять, почему. Может быть, это потому, что сейчас 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 возрастов ниже среднего.»