开发者

Finding max value in an array

If I have an array, e.g.

10, 4, 7, 8

The value of the maximum element is

10

How can I find this value?


Here's my attempt:

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 write 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.


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));


You have a semicolon after your for statement:

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

This should be:

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;

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


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;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜