全局变量求十个数最大数最小数平均数问题
#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,请大神指点一下,谢谢 此句
scanf("%d",&a);
改为
scanf("%lf",&a); jackz007 发表于 2021-1-12 09:25
此句
改为
好像改完 if(a>a)以后,最大数最小数还是无法正常输出,不知道咋回事
阿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]