C语言求最大值

/*2.建立一个函数,其原型是intaverMaxMin(inta[],intn,int*pmax,int*pmin);返回值是整型数组的平均值,*pmax为最大值,*p... /*2. 建立一个函数,其原型是 int averMaxMin(int a[],int n,int * pmax, int * pmin);返回值是整型数组的平均值,
*pmax为最大值,*pmin为最小值.通过这种方式达到一个函数返回多个值的目的。并设计主函数测试该函数。*/

#include <stdio.h>
void main()
{
float averMaxMin(int a[],int n,int *pmax, int *pmin);
int i,n,a[100],*pmax,*pmin;
printf("请输入需要比较的数的个数:");
scanf("%d",&n);
printf("请输入需要比较的数:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
pmax=a;
pmin=a;
averMaxMin(a,n,pmax,pmin);
printf("平均值是%f\n",averMaxMin(a,n,pmax,pmin));
printf("最大值为%d,最小值为%d\n",*pmax,*pmin);
}

float averMaxMin(int a[],int n,int *pmax, int *pmin)
{
int i;
float aver,sum=0.0;
*pmax=*pmin=a[0];
for(i=0;i<n;i++)
{
sum+=a[i];
if(a[i+1]>*pmax)
pmax=&a[i+1];
else if(a[i+1]<*pmin)
pmin=&a[i+1];

}

aver=sum/n;
return (aver);
}
运行结果不对,总是输出了第一个数组的值
展开
 我来答 举报
珍惜所有所爱
推荐于2016-10-15 · TA获得超过538个赞
知道小有建树答主
回答量:180
采纳率:0%
帮助的人:68.6万
展开全部
//修改如下
#include <stdio.h>
#include <stdlib.h>
void main()
{
float averMaxMin(int a[],int n,int *pmax, int *pmin);
int i,n,a[100],*pmax,*pmin;
printf("请输入需要比较的数的个数:");
scanf("%d",&n);
printf("请输入需要比较的数:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
pmax=(int *)malloc(sizeof(int));//分配内存,我帮你改了这里
pmin=(int *)malloc(sizeof(int));
//多余的averMaxMin(a,n,pmax,pmin);
printf("平均值是%f\n",averMaxMin(a,n,pmax,pmin));
printf("最大值为%d,最小值为%d\n",*pmax,*pmin);
}

float averMaxMin(int a[],int n,int *pmax, int *pmin)
{
int i;
float aver,sum=0.0;
*pmax=*pmin=a[0];
for(i=0;i<n;i++)
{
sum+=a[i];
if(a[i]>*pmax)//这里也修改了,应该让*pmax=a[i],这里才能改变地址的内容
*pmax=a[i];
if(a[i]<*pmin)
*pmin=a[i];

}

aver=sum/n;
return (aver);
}
e722xjtu
2011-06-08 · TA获得超过100个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:147万
展开全部
#include <stdio.h>
void main()
{
float averMaxMin(int a[],int n,int *pmax, int *pmin);
int i,n,a[100],*pmax,*pmin;
printf("请输入需要比较的数的个数:");
scanf("%d",&n);
printf("请输入需要比较的数:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);(这里好像应该是:scanf("%d",a[i]);)
pmax=a;
pmin=a;
averMaxMin(a,n,pmax,pmin);
printf("平均值是%f\n",averMaxMin(a,n,pmax,pmin));
printf("最大值为%d,最小值为%d\n",*pmax,*pmin);
}

float averMaxMin(int a[],int n,int *pmax, int *pmin)
{
int i;
float aver,sum=0.0;
//*pmax=*pmin=a[0];
pmax = pmin = a;
for(i=0;i<n;i++)
{
//sum+=a[i];
//if(a[i+1]>*pmax)
//pmax=&a[i+1];
//else if(a[i+1]<*pmin)
//pmin=&a[i+1];
//如下呢:
sum+=a[i];
if(a[i] > *pmax)
pmax = a+i;
else if(a[i] < *pmin)
pmin = a + i;

}

aver=sum/n;
return (aver);
}
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
俊永翼F
高粉答主

2020-03-02 · 说的都是干货,快来关注
知道答主
回答量:8.1万
采纳率:3%
帮助的人:4204万
展开全部
快捷键说明
  • : 播放 / 暂停
  • : 退出全屏
  • : 音量提高10%
  • : 音量降低10%
  • : 单次快进5秒
  • : 单次快退5秒
视频统计信息
Video url:
Video volume:
Video time:
Duration:
Dropped Frames:
Resolution:
x
[x]
按住此处可拖拽
不再出现
可在播放器设置中重新打开小窗播放
播放出现小问题,请 刷新 尝试
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式