#include <stdio.h>
int main(void)
{
long int a;
long int o,j;
double oo,jj;
oo=jj=0;
while(1==scanf("%d",&a)&&a!=0)
{
if(a%2==0)
{
o++;
oo+=a;
}
else
{
j++;
jj+=a;
}
}
printf("%ld %.2lf\n%ld %.2lf",o,oo/o,j,jj/j);
return 0;
}
这个循环为什么最后输出把0算进奇数里面了啊?
如果输入的全是奇数或全是偶数,求平均数那里不就分母为0了吗?
O 和 J用来计数的你不给初值
在一个 你这个输出语句 如果偶数或奇数个数为零也会有问题,做个判断o 或者 j为0输出语句变一下
#include <stdio.h>
int main(void)
{
long int a=1;
long int o=0,j=0;
double oo,jj;
oo=jj=0;
while(1==scanf("%d",&a)&&a!=0)
{
if(a%2==0)
{
o++;
oo+=a;
}
else
{
j++;
jj+=a;
}
}
if(o==0)
printf("偶数为0个\n%ld %.2lf",o,oo/o,j,jj/j);
else if(j==0)
printf("%ld %.2lf\n奇数为0个",o,oo/o,j,jj/j);
else if(o==0&&j==0)
printf("奇数偶数都为0");
else
printf("%ld %.2lf\n%ld %.2lf",o,oo/o,j,jj/j);
return 0;
}