才用打擂台的形式,先放一个数max在擂台上,然后每个数都上去和他比较,如果上去的那个数比max大,那么就把max替换成那个数站在擂台上,依次比较,直到所有数都比较完后,站在擂台上的那个max就是最大数
int main()
{int arr[10] = { 0 };int sz = sizeof(arr) / sizeof(arr[0]);int i = 0;for (i = 0; i < sz; i++){scanf("%d", &arr[i]);}int max = 0;for (i = 0; i < sz; i++){if (arr[i] > max){max = arr[i];}}printf("%d", max);return 0;
}
然而这样写却是错的,因为我们把首先站在擂台上的max赋值了一个,arr数组中并没有的整数0.导致在之后的比较中,如果arr中的数都是负数,那么最后得到的最大值就只max=0;显然0都不是我要求的整数中的数
所以max赋值的时候要赋于arr中的数,而不能赋为0
int main()
{int arr[10] = { 0 };int sz = sizeof(arr) / sizeof(arr[0]);int i = 0;for (i = 0; i < sz; i++){scanf("%d", &arr[i]);}int max =arr[0];//赋值为arr中有的数for (i = 0; i < sz; i++){if (arr[i] > max){max = arr[i];}}printf("%d", max);return 0;
}