习题
编写一个函数,返回一维实型数组前n个元素的最大数,最小数和平均值。数组,n和最大数,最小数,平均值均作为函数的形式参数 #include <stdio.h>double fun(double a[], int n, double *max, double *min)
{
double sum;
int i;
sum = *max = *min = a;
for(i = 1; i < n; i++)
{
sum += a;
if(a > *max)
*max = a;
else if(a < *min)
*min = a;
}
return sum / n;
}
int main()
{
double a = {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\n最大数:%lf\n最小数:%lf\n", ave, max, min);
return 0;
} 本帖最后由 jackz007 于 2020-12-26 16:27 编辑
题目有这个要求:"数组,n和最大数,最小数,平均值均作为函数的形式参数"
所以,楼主的代码还得调整
这是我写的代码,请楼主测试。
#include <stdio.h>
void sort(double d[] , int n , double * min , double * max , double * ave)
{
int i , j ;
double r , t ;
for(i = 0 ; i < n - 1 ; i ++) {
for(j = i + 1 ; j < n ; j ++) {
if(d > d) {
t = d ;
d = d ;
d = t ;
}
}
}
for(t = 0 , i = 0 ; i < n ; i ++) t += d ;
* min = d ;
* max = d ;
* ave = t / n ;
}
int main(void)
{
double d , min , max , ave ;
int i , n ;
scanf("%d" , & n) ;
for(i = 0 ; i < n ; i ++) scanf("%lf" , & d) ;
sort(d , n , & min , & max , & ave) ;
printf("min : %lf , max = %lf , ave = %lf\n" , min , max , ave) ;
}
编译、运行实况
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
8
6 5 4 3 2 1 8 7
min : 1.000000 , max = 8.000000 , ave = 4.500000
D:\00.Excise\C> 宇轩宇轩! 发表于 2020-12-26 16:13
#include
double fun(double a[], int n, double *max, double *min)
你的程序没有问题,相信自己!
页:
[1]