int highNum = 0;
int m;
int list[4] = {10, 4, 7, 8};
for (m = 0 ; m < size ; m++);
{
if (list[m] > highNum)
highNum = list[m];
cout << list[m];
}
cout << highNum;
我试图找到一个简单的循环来存储数组的最大值,我写这个认为它会起作用,但由于某种原因,在for循环的开头它将m变量存储为4并退出环。有人可以帮助我吗?
答案 0 :(得分:15)
除非你为家庭作业做这个并且必须编写循环,否则只需使用std::max_element
,如:
int list[4] = {10, 4, 7, 8};
std::cout << *std::max_element(list, list+4);
...或更好,避免硬编码长度:
int list[] = {10, 4, 7, 8};
std::cout << *std::max_element(std::begin(list), std::end(list));
答案 1 :(得分:3)
int highNum = 0;
int m;
int list[4] = {10, 4, 7, 8};
for (m = 0 ; m < size ; m++); // <-- semicolon?
{
if (list[m] > highNum)
highNum = list[m];
cout << list[m];
}
cout << highNum;
查看缩进,您可能错过了{
}
if
语句的对{/ p>}。
答案 2 :(得分:1)
您的for
声明之后有分号:
for (m = 0 ; m < size ; m++);
{
这应该是:
for (m = 0 ; m < size ; m++)
{
答案 3 :(得分:1)
在for循环的右括号后面有一个;
:
for (m = 0 ; m < size ; m++);
块中的语句(花括号内)只有在循环执行 的大小次数并且也只执行一次之后才会执行。
你也错过了一对{ ... }
的if语句。
答案 4 :(得分:0)
你在;
的末尾添加了多余的内容:
for (m = 0 ; m < size ; m++);
编辑:使用其他<< endl;
int size = 4;
int highNum = 0;
int m;
int list[4] = {10, 4, 7, 8};
for (m = 0 ; m < size ; m++)
{
if (list[m] > highNum)
highNum = list[m];
cout << list[m] << endl;
}
cout << highNum << endl;