C语言例程:计算奇数偶数平均值问题

从终端读取数据,直到输入0值才为结束,计算出其中的偶数个数及平均值和奇数的个数以及平均值。

#include <stdio.h>
#include <stdlib.h>

static void test2(void)
{
    int n;
    int ct_odd = 0,ct_even = 0;// 定义 odd奇数 even为偶数
    double sum_odd = 0,sum_even = 0;
    
    while(scanf("%d",&n) == 1 && n != 0) 
    {
        if(n % 2 ==1)
        {
            ct_odd ++;
            sum_odd += n;
        }
        else
        {
            ct_even ++;
            sum_even += n;
        }
    }
    printf("odd:%d,AVE:%f\n",ct_odd,sum_odd/ct_odd);
    printf("even:%d,AVE:%f\n",ct_even,sum_even/ct_even);
}

int main()
{
    test2();
    exit(0);
}

scanf("%d",&n) == 1
scanf 函数有一个返回值,0表示接受输入失败,1表示接受输入成功。 while(scanf("%d",&x)==1) 的意思就是: 当接收输入变量x的值成功的时候,继续做循环。
这里使用到scanf,而不是getchar。是因为用scanf输入字符串十分危险,容易出现越界现象。而getchar是获取一个字符的专用。

猜你喜欢

转载自blog.csdn.net/weixin_45075787/article/details/114222927