
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);
}
运行结果不对,总是输出了第一个数组的值 展开
*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);
}
运行结果不对,总是输出了第一个数组的值 展开
3个回答
展开全部
//修改如下
#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);
}
#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);
}
展开全部
#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);
}
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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |