C语言的问题 输入一批非零整数,用零作输入结束标志,求其中偶数、奇数的平均值

#include "stdio.h"
int main()
{
int n,s1=0,s2=0,j,i,av1,av2;
while(1)
{
scanf("%d",&n);
if(n==0)
break;
if(n%2==0) {s1=s1+n;i++;}
else {s2=s2+n;j++;}
if(i!=0) av1=s1/i;
if(j!=0) av2=s2/j;
}
printf("oushujunzhi:%7.2f,jishujunzhi:%7.2f\n",av1,av2);
}

为什么答案不对

你的i, j赋上初值为0


你求平均不用在循环体里算的, 只需统计i, j的值就行了, 跳出循环的时候算一次就OK了.

另外, 你求平均, av1, av2就要用float或double型, 不然你就算%7.2f只会给你补上.00的, 不准确

#include "stdio.h"

int main()
{
    int n, s1=0, s2=0, j = 0,i = 0;
    float av1, av2;
    
    while(1)
    {
        scanf("%d",&n);
        
        if(n==0)
            break;
        
        if(n%2==0) {s1=s1+n;i++;}
        else {s2=s2+n;j++;}
    }
    
    if(i!=0) av1=(float)s1/i;
    if(j!=0) av2=(float)s2/j;
    
    printf("oushujunzhi:%7.2f,jishujunzhi:%7.2f\n",av1,av2);
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答