C语言只用一个函数返回数组中最大值,最小值,平均值
发布网友
发布时间:2023-01-02 00:34
我来回答
共3个回答
热心网友
时间:2023-10-08 23:06
你的参数传递有误,要把n和数组传进去。
#include<stdio.h>
void three(int *a,int *b,float *c,int t[],int n)
{
int i;
for(i=0;i<n;i++)
{
if(t[i]>*a)
{
*a=t[i];
}
if(t[i]<*b)
{
*b=t[i];
}
*c+=t[i];
}
}
void main()
{
int n,i,max=-9999,min=9999,a[100];
float ave=0;
printf("输入n位数字:");
scanf("%d",&n);
printf("输入%d位数组:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
three(&max,&min,&ave,a,n);
printf("该数组的最大值,最小值,平均值分别为\n %d , %d , %f ",max,min,ave/n);
}
热心网友
时间:2023-10-08 23:06
#include<stdio.h>
int n;
void three(int t[],int *a,int *b,float *c)
{
int i,j,k;
for(i=0,j=0,k=0;i<n;i++)
{
printf("%d ",t[i]);
*a=t[j];
*b=t[k];
if(t[i]>*a)
{
*a=t[i];
j=i;
}
if(t[i]<*b)
{
*b=t[i];
k=i;
}
*c+=t[i];
}
}
void main()
{
int i,max=0,min=0,a[100];
float ave=0;
printf("输入n位数字:");
scanf("%d",&n);
printf("输入%d位数组:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
three(a,&max,&min,&ave);
printf("该数组的最大值,最小值,平均值分别为\n %d , %d , %f ",max,min,ave/n);
}
简单修改
望采纳
热心网友
时间:2023-10-08 23:07
确定把数组传进three函数里面了吗追问什么意思啊,是在void three(int *a,int *b,float *c)里面定义一个数组吗
追答你不是要求主函数里那个a[100]的平均值么,three函数里面并没有a[100]哦