【发布时间】:2016-03-16 22:46:25
【问题描述】:
我编写了这段代码,它从用户那里读取 10 个整数,将它们存储在一个数组中,然后计算并打印平均值。它还应该打印数组中大于或等于平均值的数字。相反,我的代码会打印出数组中的每个数字。我该如何解决这个问题?
另外,如果有人对如何简化此代码有任何提示,我将不胜感激。
#include <iostream>
using namespace std;
int main()
{
const int ENTER_NUM = 10;
int integer[ENTER_NUM];
cout << "Enter "<<ENTER_NUM<<" numbers: "<<endl;
cin >> integer[0];
cin >> integer[1];
cin >> integer[2];
cin >> integer[3];
cin >> integer[4];
cin >> integer[5];
cin >> integer[6];
cin >> integer[7];
cin >> integer[8];
cin >> integer[9];
int sum;
sum = integer[0]+integer[1]+integer[2]+integer[3]+integer[4]+integer[5]+integer[6]+integer[7]+integer[8]+integer[9];
int average;
average = sum/ENTER_NUM;
cout<<"Average is: "<<average<<endl;
for(int i=0; i<10; i++)
{
if (integer[i]>=average);
cout<<"Number in array greater than or equal to the average: "<<integer[i]<<endl;
}
return 0;
}
【问题讨论】:
-
第 23 行继续为 +integer[7]+integer[8]+integer[9];
-
旁注:您似乎已经了解循环;那么为什么要使用循环与平均值进行比较?但是在计算初始总和时手动记下所有数组元素?这就像......好吧,不是很聪明。
-
您应该阅读
std::vector、std::accumulate或更一般的标准库。 -
for循环也可用于输入数据!另一个计算总和。 -
@ThomasMatthews -- 或同一个来计算总和。