1)问题出在minmax函数,这个函数找到的最大值和最小值没有返回。
创新互联建站长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为岚县企业提供专业的成都做网站、成都网站制作,岚县网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
2)虽然你定义了最大值和最小值为全局变量,但是在minmax函数的调用参数中你又定义了同名变量,这样在minmax函数内部实际使用的是局部变量。
3)最简单的方法,直接把minmax函数的后两个输入参数去掉。
#includestdio.h
int max(int n)
{int i,x,f;
scanf("%d",f);
for(i=1;in;i++)
{scanf("%d",x);
if(xf)f=x;
}
return f;
}
int main()
{int n;
printf("有几个数:");
scanf("%d",n);
printf("其中最大的数是:%d\n",max(n));
return 0;
}
#includestdio.h
int min;
int maxmin(int n)
{int i,x,f;
scanf("%d",f);
min=f;
for(i=1;in;i++)
{scanf("%d",x);
if(xf)f=x;
else if(xmin)min=x;
}
return f;
}
int main()
{int n,mm;
printf("有几个数:");
scanf("%d",n);
mm=maxmin(n);
printf("其中最大的数是:%d\n最小的数是:%d\n",mm,min);
return 0;
}
用指针求含有十个元素的数组最大值和最小值
主函数参考
int main()
{
int a[10],i,maxnum,minnum;
for(i=0;i10;i++)
scanf("%d",a[i]);
FindMaxandMin(a,10,maxnum,minnum);
printf("%d %d",maxnum,minnum);
}
输入格式:
数组
输出格式:
最大值 最小值
输入样例:
1 2 3 5 4 6 7 8 9 10
输出样例:
10 1
扩展资料
#include
int main()
{
int a[3];
int i,j,temp;
printf("请输入3个数:");
for(i=0;i scanf("%d",a[i]);
for(i=0;i for(j=0;j if(a[j]a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("最大值%d最小值%d",a[2],a[0]);
return 0;
}
参考资料:百度百科 - C语言
前面已经有两位高手做出了回答,我运行了一下,《怺逺恒暒》有时候得不到正确的结果;《kaixingui2012》的不能运行,提示类型不对。不知道什么原因,也许是我的版本有问题?
我也做了一个,感觉运行还是不错的。请比较吧!
#include "stdio.h"
double fun(double a[],int n,int *max,int *min);/*函数原型声明:其中a为数组,
n为数组元素个数,max指向最大数,min指向最小数,函数返回值为平均值*/
int main()
{
double b[10],aver;
int x,y=10,max=0,*ma=max,min=0,*mi=min;
for(x=0;xy;x++){b[x]=x*(x-8.25)*0.1;printf("数%d=%f\n",x,b[x]);}
aver=fun(b,y,ma,mi);
printf("最大的数为第%d个数(%f),最小的数为第%d个数(%f),平均值为%f",*ma,b[*ma],*mi,b[*mi],aver);
return 0;
}
double fun(double a[],int n,int*max,int*min)
{
int i;
double sum=0;
double max1=a[0],min1=a[0];
*max=0;
*min=0;
for(i=0;in;i++)
{
if(a[i]max1){*max=i;max1=a[i];}
if(a[i]min1){*min=i;min1=a[i];}
sum=sum+a[i];
}
printf("sum=%f,n=%d\n",sum,n);
return sum/n;
}