我编写的代码从用户读取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;
}
答案 0 :(得分:5)
在循环中的;
之后,您有一个虚假的if
。
如果您总是在{}
和类似的控制结构上使用if
而不是依赖&#34;一行异常&#34;,则此错误不太可能发生。
答案 1 :(得分:3)
if (integer[i]>=average);
最后包含一个分号,删除了它之后控制print语句的能力。打开编译器的警告级别,你会收到有关此