题解 | #记负均正#

记负均正

https://www.nowcoder.com/practice/6abde6ffcc354ea1a8333836bd6876b8

解题思路

主要涉及数据类型和if判断的设定

题目要求筛选大于0的数(正数)求和再取平均值并保留一位小数,因此涉及正数部分的应该用浮点型的变量保存和计算

筛选小于0的数(负数)记录出现的次数,因此只用使用整型变量就可以记录

我是通过设置一个数组来记录输入的所有数据,然后通过for循环来遍历

详细的可以查看代码

#include <stdio.h>

int main() {
    int a = 0;
    double arry[2000] = {0}, avg = 0, sum = 0;
    int i = 0, num = 0;
    scanf("%d", &a);
    while (scanf("%lf", &arry[i]) != EOF) {
        if (i >= a ) {
            break;
        }
        i++;
    }
    for (i = 0; i < a; i++) {
        if (arry[i] > 0) //正数部分
		{
            sum += arry[i];
            avg++;
        }
        if (arry[i]< 0)//负数部分
		{
            num++;
        }
    }
    if(sum>0)//有时候可能会没有正数,这时候计算平均值会报错因此加一个判断
    {
        avg = sum / avg;
    }
    printf("%d %.1f", num, avg);

    return 0;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务