c语言定义max_min求一个数组最大值和最小值,利用调用函数void max_min(int[],int n,int *map,int *minp)
void (max_min)
int a[],int n;
int (*maxp,int *minp);
{
int i;
*maxp=a[0];
*minp=a[0];
for(i=1;i<=n-1;i++)
{
if(a[i]>=*maxp)
*maxp=a[i];
else if
(a[i]<*minp) *minp=a[i];
}
}
int main()
{
int a[100],n,i,max,min;
printf("please input n:");
scanf("%d",&n);
printf("please in put number :");
for(i=0;i<=n-1;i++);
scanf("%d",&a[i]);
max_min(a,n,maxp,minp);
printf("the max and min is :%d&%d\n",maxp,minp);
return 0;
}
这个那里出了错误?????????谢谢改正! 展开
#include<stdio.h>
//max_min函数定义太乱了,应该是这样的:
void max_min(int a[],int n,int *maxp,int *minp)
{
int i;
*maxp=a[0];
*minp=a[0];
for(i=1;i<=n-1;i++)
{
if(a[i]>=*maxp)
*maxp=a[i];
else if (a[i]<*minp)
*minp=a[i];
}
}
int main()
{
int a[100],n,i,max,min;
printf("please input n:");
scanf("%d",&n);
printf("please in put number :");
for(i=0;i<=n-1;i++)//去掉分号
scanf("%d",&a[i]);
max_min(a,n,&max,&min); //应该是传变量地址,max_min(a,n,maxp,minp);
printf("the max and min is :%d&%d\n",max,min); //maxp,minp没定义,应该是max,min
return 0;
}
结果:
void max_min(int a[],int int *maxp,int *minp);
{
int i;
*maxp=a[0];
*minp=a[0];
for(i=1;i<=n-1;i++)
{
if(a[i]>=*maxp)
*maxp=a[i];
if(a[i]<*minp)
*minp=a[i];
}
}
int main()
{
int a[100],n,i,max,min;
printf("please input n:");
scanf("%d",&n);
printf("please in put number :");
for(i=0;i<=n-1;i++);
scanf("%d",&a[i]);
max_min(a,n,&maxp,&minp);
printf("the max and min is :%d&%d\n",maxp,minp);
return 0;
}
max_min函数调用,定义了指针就取maxp,minp地址------>max_min(a,n,maxp,minp);
至于第二行函数定义,你自己粘错了吧
关于你那个max_min()函数,你的定义实在看不明白,你保证没有问题就好了