C语言利用函数调用求一组数的最大值,最小值,平均数。。。。。。急。。。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言利用函数调用求一组数的最大值,最小值,平均数。。。。。。急。。。。相关的知识,希望对你有一定的参考价值。

我的统计计算程序,你去掉均方差,RMS,Hm0 等,你不用的即可。
#include <stdio.h>
#include <math.h>

/* ----------------------------------------------------------
* basic_statistics()
* input y[N]
* output y_min, y_max, y_mean, y_Standard_deviation, y_RMS
* ----------------------------------------------------------*/
void basic_statistics(float *y, int N, float *ymin, float *ymax, float *ymean, float *ysigma,
float *yrms, float *Hm0)

int i;
float yd,yu,ym,ys,yr,dy,hm0;
double sum,sum2;

yd = y[0]; yu= y[0];
sum = 0.0;
for (i=0;i<N;i++)
sum = sum + y[i];
if (y[i] > yu) yu = y[i];
if (y[i] < yd) yd = y[i];
;
ym = (float) ( sum / (double) N );
*ymin = yd;
*ymax = yu;
*ymean = ym;

///hm0
sum2 = 0.0;
for (i=0;i<N;i++) sum2 = sum2 + y[i] * y[i]; ;
hm0 = (float) ( 4.0 * sqrt( (sum2 - sum * sum / (double) (N)) / (double) ( N - 1) ));
*Hm0 = hm0;

sum = 0.0;
sum2 = 0.0;
for (i=0;i<N;i++)
dy = y[i] - ym;
sum = sum + dy * dy;
sum2 = sum2 + y[i] * y[i];
;
yr = (float) sqrt( sum2 / (double) (N) );
ys = (float) sqrt( sum / (double) (N-1) );
*ysigma = (float) ys;
*yrms = yr;


void main()

float y[]=1,2,3,4,5;
float ymin, ymax,ymean,j1,j2,j3;
basic_statistics(&y[0], 5, &ymin, &ymax, &ymean, &j1, &j2, &j3);
printf("%f %f %f\n",ymin, ymax,ymean);
参考技术A

给你推荐个网址http://zhidao.baidu.com/question/231663157.html

这个问题不是第一次提了 

#include <stdio.h>

#include <stdlib.h>

void fun(int arr[],int n,int *min,int *max,float *average)

int i=0,sum=arr[i];

*min=arr[i];

*max=arr[i];

for(i=1;i<n;i++)

 

 if(arr[i]<*min) *min=arr[i];

 if(arr[i]>*max) *max=arr[i];

 sum+=arr[i];

 

*average=sum*1.0/n;

int main(int argc, char *argv[])

int a[6]=5,34,23,10,6,17;

int min=0,max=0;

float average=0;

fun(a,6,&min,&max,&average);

printf("min=%d,max=%d,average=%f.\\r\\n",min,max,average);

  system("PAUSE"); 

  return 0;

  

有图

参考资料:http://zhidao.baidu.com/question/231663157.html

参考技术B /*
功能 :计算一组数里最大值 最小值 和平均值
使用:

double a[100],max,min,avg;
getResult(a,n,&max,&min,&avg);
参数表示:
a[]表示那组数 n表示这组数的个数 max min avg 顾名思义
注:数组小标从0 开始 调用该函数前 不需要对avg max min 初始化了
*/
void getResult(double *a[],int n,double *max, double *min,double *avg )

int i;*avg=0;*min=0x7fffffff;*max=-0x7fffffff;
for(i=0;i<n;i++)
if(a[i]>*max)*max=a[i];//一直保存最大值
if(a[i]<*min)*min=a[i];//一直保存最小值
*avg+=a[i];

*avg=(*avg)/n;

参考技术C pingjun=&((a+b+c)/3.0);
不能这样写啊
而要写成下面这样才行

还有,既然
double zuidapingjun(double a,double b,double c)
无return返回值,就是void型的

#include<stdio.h>
void zuidapingjun(double a,double b,double c) ;
void main()
double a,b,c;
//double *pingjun,*zuida;
scanf("%d%d%d",&a,&b,&c);
zuidapingjun(a,b,c);

//printf(" 最大值为%lf,平均值为%lf",*zuida,*pingjun);


void zuidapingjun(double a,double b,double c)

double *zuida,*pingjun,temp;

double TEMP;
TEMP=((a+b+c)/3.0);
pingjun=&TEMP;

if(a>b)
temp=a;
a=b;
b=temp;
if(b>c)
temp=b;
c=b;
b=temp;
if(a>c)
temp=c;
c=a;
a=temp;

zuida=&a;
printf(" 最大值为%lf,平均值为%lf",*zuida,*pingjun);

参考技术D #include<stdio.h>
#define M 4//可定义你要求的数组元素的数
float MAX(float a[],int n)

int i;
float max=a[0];
for(i=0;i<n;i++)

if(a[i]>max)
max=a[i];

return max;

float MIN(float a[],int n)

int i;
float min=a[0];
for(i=0;i<n;i++)

if(a[i]<min)
min=a[i];

return min;

float AVG(float a[],int n)

int i;
float avg,sum=0;
for(i=0;i<n;i++)

sum=sum+a[i];

avg=sum/n;
return avg;

void main()

float a[M],max,min,avg;
int i;
printf("请输入一组整数:\n");
for(i=0;i<M;i++)

scanf("%f",&a[i]);

max=MAX(a,M);
min=MIN(a,M);
avg=AVG(a,M);
printf("max=%.2f min=%.2f avg=%.2f \n",max,min,avg);


//可求浮点型的数最大值,最小值,平均值

找出一组数据中最大的数和最小的数,并将它们的位置互换。(C语言编程题,急求大神解答,明天早上要交...

找出一组数据中最大的数和最小的数,并将它们的位置互换。(C语言编程题,急求大神解答,明天早上要交,谢谢了)

参考技术A #include <stdio.h>

void main()

int dat[10]= 12, 34, 23, 45, 56, 21, 33, 39, 98, 76;
int max= dat[0], min= dat[0], i, maxnum= 0, minnum= 0;

for(i= 1; i < 10; i++)

if(dat[i] > max)

max= dat[i];
maxnum= i;


if(dat[i] < min)

min= dat[i];
minnum= i;



i= dat[maxnum];
dat[maxnum]= dat[minnum];
dat[minnum]= i;

for(i= 0; i < 10; i++)
printf("%d\n", dat[i]);
参考技术B 定义max,min两个变量,找出最大最小数的下标放入其中
将下标为max,min的两个数借助第三变量交换
也可以用指针做
参考技术C 不允许输入那么长啊,我学JAVA的,我用的是JAVA,前几天刚做过这道题。
你先创建一个数组然后再创建一个整型类型,初始值为数组中的第一个数,用循环来输出数组中每个数据,同时用判断语句来判断,然后排序输出
参考技术D 不知道 第5个回答  2012-11-22 不是什么大程序的话,用冒泡排序找

以上是关于C语言利用函数调用求一组数的最大值,最小值,平均数。。。。。。急。。。。的主要内容,如果未能解决你的问题,请参考以下文章

c语言 求一组数的平均值及其均方差 写出程序,谢谢!

c语言求解,,,输出一组数的最大值,最小值,和,平均值(保留2位小数)。。不能用数组

找出一组数据中最大的数和最小的数,并将它们的位置互换。(C语言编程题,急求大神解答,明天早上要交...

C语言数组比较求最小值

python求一组数组最大值,最小值,平均值

求一段C语言程序,主要是比较两个数据组。