宇轩宇轩! 发表于 2020-12-26 15:38:08

习题

编写一个函数,返回一维实型数组前n个元素的最大数,最小数和平均值。数组,n和最大数,最小数,平均值均作为函数的形式参数

宇轩宇轩! 发表于 2020-12-26 16:13:33

#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:18:04

本帖最后由 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>

风过无痕1989 发表于 2020-12-27 00:05:46

宇轩宇轩! 发表于 2020-12-26 16:13
#include

double fun(double a[], int n, double *max, double *min)


你的程序没有问题,相信自己!
页: [1]
查看完整版本: 习题