有人可以告诉我我的程序有什么问题吗?我的程序应该找到最大值,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[]?
尝试使用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:可以在这里找到使用这些方法的实例.