求整数中的最大值

才用打擂台的形式,先放一个数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;
}

求整数中的最大值_第1张图片

你可能感兴趣的:(算法,数据结构)