方法1:将相邻的两个数将进行比较
int main()
{
//准备10个整数
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//找出最大值
int i = 0;
int max = 0;
for (i = 0; i < 10; i++)
{
if (arr[i] > arr[i + 1])
{
max = arr[i];
}
else
{
max = arr[i+1];
}
}
printf("%d\n", max);
return 0;
}
方法2:假设第一个值最大,将其他值与第一个值进行比较
int main()
{
//准备10个整数
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//找出最大值,假设第一个数为最大值,用其他数字与它比较
int i = 0;
int max = arr[0];
for (i = 1; i <= 10; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
printf("%d", max);
return 0;
}
假如没有指定具体的数字,需要自己手动输出
int main()
{
//准备10个整数
int arr[10] = { 0 };
//找出最大值,假设第一个数为最大值,用其他数字与它比较
//输入数字
int i = 0;
for (i = 0; i < 10; i++)
{
scanf("%d\n", &arr[i]);
}
//找出最大值
int max = arr[0];
for (i = 1; i <= 10; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
printf("%d", max);
return 0;
}
一个错误的案例
int main()
{
//准备10个整数
int arr[] = { 0 };//-->此时的数组其实只初始化了一个元素,等价于 int arr[1]={0};
//这里没有指定数组的元素个数,就会根据初始化的内容来推算元素的个数
//输入数字
int i = 0;
for (i = 0; i < 10; i++)
{
scanf("%d\n", &arr[i]);
}
//找出最大值
int max = arr[0];
for (i = 1; i <= 10; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
printf("%d", max);
return 0;
}
上述代码在手动输入10个数据后,运行时会崩溃,崩溃的原因是数组越界访问了。