查找数组中的最大值

时间:2011-10-10 23:55:00

标签: c++

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并退出环。有人可以帮助我吗?

5 个答案:

答案 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;