C语言编写用函数找出数组的最大值与最小值,然后交换位置(要求函数形参用指针)

C语言课老师出的考试样题,,急求,各位神仙大人帮帮忙,编个,小弟在此谢过

第1个回答  2010-12-25
#include<stdio.h>

void fun(int* a,int* b,int* c,int *max,int *min)
{
*max=*a;
*min=*a;
if(*max<*b)
*max=*b;
else if(*min>*b)
*min=*b;
if(*max<*c)
*max=*c;
else if(*min>*c)
*min=*c;
}

int main()
{
int a=12,b=22,c=111;
int max,min;
fun(&a,&b,&c,&max,&min);
printf("max=%d min=%d",max,min);
return 0;
}
第2个回答  2010-12-25
fun(int *p, int n)
{ int i,ka,ki,max,min;
for(max=min=p[0],ka=ki=0,i=1;i<n;i++0)
{ if(max<p[i]) { max=p[i]; ka=i; }
if(min>[i]) { min=p[i]; ki=i; }
}
p[ka]=min; p[ki]=max;
}
第3个回答  2010-12-25
参考如下程序段:
void f(int *a, int N)
{
int i, max, min;
max=min=0;
for(i=1; i<N; i++)
{
if(a[i]>a[max]) max=i;
if(a[i]<a[min]) min=i;
}
i = a[max];
a[max] = a[min];
a[min] = i;
}本回答被提问者和网友采纳
相似回答