在一个给定的数组中找最大值

文章讲述了在C语言中找到数组最大值时,原始代码对负数数组的局限性,提出通过将`max`初始化为数组的第一个元素来改进方法,确保即使数组全为负数也能正确找到最大值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>

int main()

{

int i = 0;

int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, };

int max = 0;

int   sz = sizeof(arr) / sizeof(arr[0]);

for (i = 0; i <= sz; i++)

{

if (arr[i] > max)

max = arr[i];

}

printf("最大值max=%d\n", max);

return 0;

}

!!!这个方法不太准确,如果给定的数组里面都是负数代码就错误了

**请看下面的改进方法**

找最大数:arr[] = { -1, -2, -3, -4, -5, -6, -7, -8,1, -9, -10 }

#include<stdio.h>

int main()

{

int arr[] = { -1, -2, -3, -4, -5, -6, -7, -8, -9, -10 };

 //因为max初始化不是零,如果数组全为负数,max初始化为零就永远找不到最大值

int max = arr[0]; 

int sz = sizeof(arr) / sizeof(arr[0]);

int i = 0;

for (i = 1; i < sz; i++)

{

if (arr[i] > max)

max = arr[i];

}

printf("max=%d\n", max);

return 0;

}