PTA-统计正数和负数的个数然后计算这些数的平均值

如果非要用C写。

测试点2:如果为0不输出

测试点3:平均值为整数,那么要保留1位小数

测试点4:平均值为小数,该几位就几位,11位小数也得照样11位输出。

#include<stdio.h>

int main()
{
int countz=0,countf=0,sum=0,a;
double ave;
    while(1)
    {
    scanf("%d",&a);
    if(a==0)
    break;
sum=sum+a;
if(a>0)
countz++;
if(a<0)
countf++;
    }
if(countz+countf>0){
ave=1.0*sum/(countz+countf);
printf("%d\n",countz);
printf("%d\n",countf);
printf("%d\n",sum);
if(ave-(int)ave!=0)
{
int cnt=countz+countf;
printf("%d",sum/cnt);
printf(".");
if(sum<0) sum=-sum;
sum-=(int)(sum/cnt)*cnt;
int mycnt=0;
while(sum!=0)
{

sum*=10;
printf("%d",sum/cnt);
sum-=(int)(sum/cnt)*cnt;
mycnt++;
if(mycnt==20) break;
}
}
else
printf("%.1lf",ave);
}
return 0;
}

 

posted @ 2020-11-15 12:14  地表最强队队员  阅读(834)  评论(0编辑  收藏  举报