1120 简单的数值统计
Description
现有一堆非零整数,要求统计其中正数、负数的个数以及它们的平均值。
Input
输入一系列整数,仅有最后一个数字是0,表示输入的结束。所有数据以及它们的和都在int的表示范围之内。
Output
输出有2行。如果有负数,第一行输出负数的个数和平均值,否则第一行输出0;如果有正数,第二行输出正数的个数以及平均值,否则第二行输出0。每行输出如果有2个数,则用空格隔开。平均值只保留2位小数。
Sample Input
1 2 3 4 -1 -2 -3 -4 0
Sample Output
4 -2.50
4 2.50
#include <stdio.h>
int main()
{
int i=0;
double a[100000],f=0,z=0,F=0,Z=0,m,n;
while(scanf("%lf",&a[i])&&a[i]!=0)
{
if(a[i]<0)
{
f++;
F=F+a[i];
}
if(a[i]>0)
{
z++;
Z=Z+a[i];
}
i++;
}
if(f==0&&z==0)
printf("0\n0");
if(f==0&&z>0)
{
n=Z/z;
printf("0\n%g %.2lf",z,n);
}
if(f>0&&z==0)
{
m=F/f;
printf("%g %.2lf\n0",f,m);
}
if(f>0&&z>0)
{
m=F/f;
n=Z/z;
printf("%g %.2lf\n%g %.2lf",f,m,z,n);
}
return 0;
}