C语言指针实现自定义函数求一维数组中的最大值和最小值

题设如题 要求实参数组名 形参用指针 小弟写的程序如下
#include <stdio.h>
# define N 10
void fun(float *x,float *a,float *b,int n)
{ int k;
*a=*b=x[0];
for(k=1;k<n;k++)
{if(x[k]>*a) *a=x[k];
else if(x[k]<*b)
*b=x[k];
}
void main()
{float a[N],*p=a,max,min;
printf("shuru\n");
for(;p<a+N;p++)
scanf("%f",p);
p=a;
fun(p,N,&max,&min)
printf("max=%6.2f\n",max);

printf("min=%6.2f\n",max);
}
因为学过的时间长了 所以实参形参都用了指针 希望各位高手给看看 怎么改成实参数组名 形参用指针 这个代码用VC++6.0编译没有通过 有两个错误 希望高手大大一起帮着改了 小弟不胜感激

第1个回答  2010-06-25
楼上正解
#include <stdio.h>
# define N 10
void fun(float *x,float *a,float *b,int n)
{
int k;
*a=*b=x[0];
for(k=1;k<n;k++)
{
if(x[k]>*a) *a=x[k];
else if(x[k]<*b)
*b=x[k];
}
}
void main(void)
{
float a[N],*p=a,max,min;
printf("shuru\n");
for(;p<a+N;p++)
scanf("%f",p);
p=a;
fun(p,&max,&min,N);
printf("max=%6.2f\n",max);
printf("min=%6.2f\n",min);
}本回答被提问者采纳
第2个回答  2020-02-27
全局变量方式
#include
"stdio.h"
#define
N
5
int
max;//定义在所有函数之外的变量叫全局变量
//全局变量如果在一个函数改变,那么它的值也改变
//影响到其它函数的值,从而达到传值的效果
void
find(int
*a)
{
int
i;
max=a[0];
for(i=0;i<N;i++)
{
if(max<*(a+i))
max=*(a+i);
}
}
void
main()
{
int
i;
int
a[N];
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
find(a);
printf("%d\n",max);
}
指针方式
#include
"stdio.h"
#define
N
5
int
Max(int
*a)
{
int
max,i;
max=*a;
for(i=1;i<N;i++)
{
if(max<*(a+i));
max=*(a+i);
}
return
max;
}
void
main()
{
int
a[N],max,i;
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
max=Max(a);
printf("%d\n",max);
}
第3个回答  2019-05-02
楼上正解
#include
<stdio.h>
#
define
N
10
void
fun(float
*x,float
*a,float
*b,int
n)
{
int
k;
*a=*b=x[0];
for(k=1;k<n;k++)
{
if(x[k]>*a)
*a=x[k];
else
if(x[k]<*b)
*b=x[k];
}
}
void
main(void)
{
float
a[N],*p=a,max,min;
printf("shuru
");
for(;p<a+N;p++)
scanf("%f",p);
p=a;
fun(p,&max,&min,N);
printf("max=%6.2f
",max);
printf("min=%6.2f
",min);
}
第4个回答  2010-06-22
修改如下:

#include <stdio.h>
# define N 10
void fun(float *x,float *a,float *b,int n)
{ int k;
*a=*b=x[0];
for(k=1;k<n;k++)
{if(x[k]>*a) *a=x[k];
else if(x[k]<*b)
*b=x[k];
}
} /*注意这里*/
void main()
{float a[N],*p=a,max,min;
printf("shuru\n");
for(;p<a+N;p++)
scanf("%f",p);
p=a;
fun(p,&max,&min,N);/*注意这里*/
printf("max=%6.2f\n",max);

printf("min=%6.2f\n",min); /*注意这里*/
}