阿Cxi 发表于 2021-1-12 09:18:51

全局变量求十个数最大数最小数平均数问题

#include <stdio.h>
int i,j;double pingjun=0,zuigao=0,zuidi=0;
double a;
double chengji(double a)
{
        int l;
        for(i=0;i<10;i++)
        {
                pingjun = pingjun+a;
        }
        pingjun = pingjun/10;
        for(i=0;i<9;i++)
        {
                for(j=0;j<9-i;j++)
                {
                        if(a<a)
                        {
                                l=a;
                                a=a;
                                a=a;
                        }
                }
        }
        zuigao=a;
        zuidi=a;
        return pingjun;
       
}
int main()
{
        for(i=0;i<10;i++)
        {
                scanf("%d",&a);
        }
        chengji(a);
        printf("%lf %lf %lf",pingjun,zuigao,zuidi);
       
}
不知道为啥最后输出的是0,0,0,请大神指点一下,谢谢

jackz007 发表于 2021-1-12 09:25:41

       此句
             scanf("%d",&a);
       改为
             scanf("%lf",&a);

阿Cxi 发表于 2021-1-12 09:37:21

jackz007 发表于 2021-1-12 09:25
此句

       改为

好像改完        if(a>a)以后,最大数最小数还是无法正常输出,不知道咋回事

jackz007 发表于 2021-1-12 10:34:35

阿Cxi 发表于 2021-1-12 09:37
好像改完        if(a>a)以后,最大数最小数还是无法正常输出,不知道咋回事

      不到万不得已,不要轻易使用全局变量
#include <stdio.h>

double chengji(double a[] , double * zuidi , double * zuigao)
{
      int i , j                                              ;
      double l , pingjun                                     ;
      for(pingjun = i = 0 ; i < 10 ; i ++) pingjun += a   ;
      pingjun /= 10                                          ;
      for(i = 1 ; i < 10 ; i ++) {
                for(j = i ; j && a < a ; j --) {
                        l = a                               ;
                        a = a                        ;
                        a = l                           ;
                }
      }
      * zuidi = a                                       ;
      * zuigao = a                                        ;
      return pingjun                                       ;
}

int main(void)
{
      int i                                                ;
      double a , pingjun , zuidi , zuigao                ;
      for(i = 0 ; i < 10 ; i ++) scanf("%lf" , & a)       ;
      pingjun = chengji(a , & zuidi , & zuigao)            ;
      printf("%.0lf %.0lf %.0lf" , pingjun , zuidi , zuigao) ;
}
页: [1]
查看完整版本: 全局变量求十个数最大数最小数平均数问题