2)虽然你定义了最大值和最小值为全局变量,但是在minmax函数的调用参数中你又定义了同名变量,这样在minmax函数内部实际使用的是局部变量。
3)最简单的方法,直接把minmax函数的后两个输入参数去掉。
第一个问题:为什么在求最大最小值钱,要把a[0][0]赋值给max,min
答:
因为max,min在最开始没有初始化,不能直接比较,而因为是比较数组里的值,又不能随便初始化。所以我们选择默认第一个数最大(或最小)。
第二个问题:
if语句
有很多个条件符合这个条件啊,怎么只输出那个最大的
而其他也符合这个条件的?
答:
我们先默认了最大(或最小值)是第一个数组元素,我们把他依次和后面元素比较,当碰到比它大(或小)的值,我们就把它保存到max(min),并在h,l中保存元素所在数组的位置,所以每次比较完,max(min)里保存的始终是最大(或最小)值。
#include<stdio.h>main()
{
int a[5],i,x,min
for(i=0i<5i++)
scanf("%d",&a[i])
min=a[0]
for(i=0i<5i++)
{
if(a[i]<min) {min=a[i]x=i}
}
printf("最小的数是%d,他在a[%d]位置\n",min,x)
}