写一个函数,返回一维实型数组前n个元素的最大数、最小数和平均值。 编一个函数,返回一维实型数组前n个元素的最大数、最小数和平均...

   www.gaoxiao88.net
#include <stdio.h>

void fun(float a[ ],float *pmax,float *pmin,float *aver,int n)
{
*pmax = a[0];
*pmin = a[0];
*aver = 0;

int i;
for (i=0;i<=n-1;i++)
{
if (*pmax<a[i])
*pmax=a[i];
if (*pmin>a[i])
*pmin=a[i];
*aver+=a[i];
}
*aver = *aver/n;
}

void main()
{
float a[100];
float max, min, aver;
int i;
int n;

printf("请输入一个整数作为所需输入数的个数:\n");
scanf("%d", &n);
printf("请输入10个实数\n");
for (i=0;i<=n-1;i++)
scanf("%f", &a[i]);
fun(a,&max,&min,&aver,n); //参数max,min,aver均按地址传递
printf("最大数为:%f,最小数为:%f,平均数为:%f\n", max, min, aver);
}

编一个函数,求一维实型数组前n个元素的最大数,最小数和平均值

函数返回平均值,最大值和最小值通过指针参数返回。考虑到输入个数不合理的情况,当个数n小于等于0时,返回值、最大值和最小值都设为0。
#include

double fun(double a[], int n, double *max, double *min)
{
double sum;
int i;
if(n <= 0)
{
*max = *min = 0;
return 0;
}
sum = *max = *min = a[0];
for(i = 1; i < n; i++)
{
sum += a[i];
if(a[i] > *max)
*max = a[i];
else if(a[i] < *min)
*min = a[i];
}
return sum / n;
}

int main()
{
double a[10] = {5.3, 6.9, 7, 8.5, 9.2, 3, 4.5, 7.1, 3.8, 2.6};
double ave, max, min;
ave = fun(a, 10, &max, &min);
printf("平均数:%lf
最大数:%lf
最小数:%lf
", ave, max, min);
return 0;
}

我想这是在考查全局变量吧。
由于子函数只能返回一个值,当想要多个值时就需要借助于全局变量,在你写的主函数外定义这一行语句:float max = 0.0,min = 0.0,average = 0.0就可以啦,还有什么问题再问吧。

相关参考:

写一个函数,返回一维实型数组前n个元素的最大数、最小数和平均值...
printf("最大数为:%f,最小数为:%f,平均数为:%f\\n", max, min, aver);} 追问 运行出来有2个错误。。 追答 #include <stdio.h>void fun(float a[ ],float *pmax,float *pmin,float *aver,int n){ *pmax = a[0]; *pmin = a[0]; *aver = 0; int i; for (i=0;i<=n-1;i++) { ...

编一个函数,求一维实型数组前n个元素的最大数,最小数和平均值
printf("平均数:%lf\\n最大数:%lf\\n最小数:%lf\\n", ave, max, min);return 0;}

编写函数int fun(int a[],int n),其功能是求一维数组中前n个数的最大...
int fun(int a[],int n){ int i, m;for (i=1, m=a[0]; i<n; ++n) if (m

编写函数,在n个元素的一维数组中,统计比相邻(前一个和后一个)元素大...
import java.util.Scanner;public class Leo {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int m = 0;int n;n = scan.nextInt();int[] a = new int[n];for (int i = 0; i < n; i++) {a[i] = scan.nextInt();}for (int i = 1; ...

C语言编写函数,寻找具有n个元素的一维数组中的最大值和最小值,并返回...
include<stdio.h>double fun(int a[],int n,int *max,int *min){int i,s; *max=*min=s=a[0]; for(i=1;i<n;i++) {if(a[i]>*max)*max=a[i]; if(a[i]<*min)*min=a[i]; s+=a[i]; } return (float)s\/n; }int main(){int n,max,min,i,a[100...

一、 请用递归算法求数组中前n个元素的平均值。 提示: 设ave(n)是求...
(不必用递推关系,更高效,严格按照你的函数定义):include <stdio.h> float ave(int n){ static int tag=n;float t;scanf("%lf",&t);if(n==1)return t;else if(tag!=n)return t+ave(n-1);else return (t+ave(n-1))\/n;} int main(){ printf("%f",ave(3));\/* 输入三...

...C++,编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平 ...
for(i=0;i<n;i++)sum+=b[i]; \/*此循环可求得数组元素之和*\/ ave=sum\/n; \/*求得平均数*\/ for(i=0,j=0;i<n;i++){ \/*用j来储存大于平均数的个数,初使化为1*\/ if(b[i]>=ave)j++;} return j;} void main(void){ float a[100];int i,sum;for(i=0;scanf...

用c语言编写一个递归函数“int FF(int a【】,int n)”,求出数组a中所...
int abc(int a[],int n){ if(n==0)return a[0];else return a[n-1]*abc(a[],n-2);} 或:int ff(int a[],int n){ int sum=0;int i for(i=0;i<n;i++){ sum+=a[i];} return sum;}

...N个元素的一维数组中的最小值,并作为函数值返回.请
int fun(int x[N]){int i,k=0;for(i=0;i<N;I++)\/\/把程序填写完整就好,从这儿开始 if(x[i] < x[k])k=i;\/\/填完了 return x[k];}

...avg(int A[],int s,int e),计算n个元素的一维数组A,从第s(以0为...
int main( ){ int s,e,i,n,A[100]; double m; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d ",&A[i]); \/\/读取数组元素,要取地址 scanf("%d %d",&s,&e); printf("%lf",avg(A,s,e)); \/\/作为参数传入时,不需要加数组的方括号,只需...

相关评论

  • 张先6489: c语言编程,自定义一个函数,返回值是一个一维数组,然后将返回值赋值个一个新的数组,数据不变 -
    18059018547: #include<stdio.h> int* fun(); int main() { int a[3], *b; b = fun(); for(int i = 0; i < 3; i++) a[i] = b[i]; return 0; } int* fun() { int a[3] = {2, 5, 9}; return a; }

  • 张先6489: 一个函数怎么返回一个一维数组 -
    18059018547: 定义一个数组 然后 返回他 如 function (){ var rs_arr=new Array(); return rs_arr; }

  • 张先6489: 编一个函数,求一维实型数组前n个元素的最大数,最小数和平均值 -
    18059018547: 函数返回平均值,最大值和最小值通过指针参数返回.考虑到输入个数不合理的情况,当个数n小于等于0时,返回值、最大值和最小值都设为0.#include <stdio.h> double fun(double a[], int n, double *max, double *min) { double sum; int i; if(n <= 0...

  • 张先6489: 定义一个递归函数,返回某一维实型数组中的最大值,语法错误,求修改 -
    18059018547: if(a[n-2]>a[n-1]); 这里多了个分号...就是你之前的错误了

  • 相关话题

    ap在线精英在线最新简短笑话,好笑的段子,搞笑句子,男女朋友校园冷笑话,搞笑歌词对白台词,夫妻搞笑对话,手机流行笑话,逗人笑的动物经典笑话,最新幽默搞笑图文,好笑的视频分享给朋友
    若有事情,请联系电邮
    © <搞笑吧