【问题描述】
写一函数,求含有10个元素的一维数组的最大值与最小值,并在主程序中调用,输出最大值和最小值。
10个元素由键盘输入。
部分参考代码:
int max , min; //全局变量定义
void max_min_value(int *array, int n)
{ int *p,*array_end;
array_end=array+n;
max= *array;
min=*array;
for(p=array+1;p<array_end;p++)
if(*p>max) max=*p;
else if(*p<min) min=*p;
}
思考:max , min不用全局变量,而定义为局部变量,如何实现?
输入形式:
input array data:11 12 13 14 15 16 17 18 19 20
输出形式:
max:20
min:11
#include<stdio.h>
int main(){
int max=0;
int min=0;
int arr[10];
int i;
printf("input array data:");
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
max_min_value(arr,sizeof(arr)/sizeof(arr[0]),&max,&min);
printf("\nmax:%d\n",max);
printf("min:%d",min);
return 0;
}
void max_min_value(int arr[], int len,int*max,int*min)
{
int i;
*min=*max=arr[0];
for(i=1;i<len;i++){
if(arr[i]<*min){
*min=arr[i];
}
if(arr[i]>*max){
*max=arr[i];
}
}
}