正在数组中查找最大值

Finding max value in an array

本文关键字:查找 最大值 数组      更新时间:2023-10-16

如果我有一个数组,例如

10、4、7、8

最大元素的值为

10

如何找到此值?


这是我的尝试:

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,然后退出循环。

除非你这样做是为了家庭作业,并且必须编写循环,否则只需使用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));

for语句后面有一个分号:

for (m = 0 ; m < size ; m++);
{

这应该是:

for (m = 0 ; m < size ; m++)
{
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;

看看你的压痕,你可能错过了一对{。。。CCD_ 4用于CCD_ 5语句。

在for循环的右括号后面有一个;for (m = 0 ; m < size ; m++);

块内的语句(大括号内(只有在循环执行nothing多次大小之后才能执行,而且只有一次。

您还错过了if语句的一对{ ... }

您在中的;末尾放了一个多余的

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;