简体   繁体   中英

Finding max value in an array

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;

I am trying to find a simple loop to store a max value from an array, and I wrote this thinking it would work, but for some reason at the beginning of the for loop it stores the m variable as 4 and exits the loop. Can someone help me out?

Unless you're doing this for homework and have to write the loop, just use std::max_element , as in:

int list[4] = {10, 4, 7, 8};
std::cout << *std::max_element(list, list+4);

...or better, avoid hard-coding the length:

int list[] = {10, 4, 7, 8};
std::cout << *std::max_element(std::begin(list), std::end(list));
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;

Looking at your indentation, you may have missed a pair of { ... } for the if statement as well.

You have a semicolon after your for statement:

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

This should be:

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

There is a ; right after the closing parentheses of your for loop: for (m = 0 ; m < size ; m++);

The statements inside the block (inside the curly braces) gets executed only after the loop do nothing for size number of times and that too only once.

You have also missed a pair of { ... } for the if statement as well.

You put a superfluous at the end ; in :

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

Edit : Working code with some additional << 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;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM