查找数组中的最大数字

New*_*258 -9 c++ arrays

有人可以告诉我我的程序有什么问题吗?我的程序应该找到最大值,int i[]但是当我运行它时,它要求我输入11个数字,而是显示11个数字中最大的数字.

#include<stdio.h>
void main(void)
{
    int i[] =
    {
        88, 67, 90, 12, 34, 65, 100, 78, 56, 77, 85, //bus 8
        98, 34, 67, 98, 67, 45, 67, 23, 45, 67, 89, //bus15
        88, 67, 90, 12, 34, 65, 100, 78, 56, 77, 85, //22
        98, 34, 67, 98, 67, 45, 67, 23, 45, 67, 89, //23
    };
    int j;
    int number,largest;
    largest=0;
    for(j=0;j<11;j++)
    {
        scanf_s("%d",&number);
        if(number>largest)largest=number;
    }
    printf("Largest=%d\n",largest);
}
Run Code Online (Sandbox Code Playgroud)

如何调整程序以便找到最大的值int i[]

jot*_*tik 9

尝试使用std::max_element来自<algorithm>:

#include <algorithm>

int i[] = { 1, 84, 11, 31 };

// for C++11 and later:
int max = *std::max_element(std::begin(i), std::end(i));

// for C++03 or earlier:
int max2 = *std::max_element(i, i + (sizeof(i) / sizeof(*i)));
Run Code Online (Sandbox Code Playgroud)

或者如果您的数组是静态的,您可以使用C++ 11初始化列表:

auto i = { 1, 84, 11, 31 };
int max = std::max(i);
int max2 = std::max({ 1, 84, 11, 31 });
Run Code Online (Sandbox Code Playgroud)

PS:可以在这里找到使用这些方法的实例.