栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【HJ97】记负均正

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【HJ97】记负均正

题目描述

首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。
0即不是正整数,也不是负数,不计入计算
数据范围:n €【1,2000】 ,输入的整数都满足 【-1000,1000】

输入描述:
本题有多组输入用例。
首先输入一个正整数n,
然后输入n个整数。
输出描述:
输出负数的个数,和所有正整数的平均值。

示例1

输入:
5
1 2 3 4 5
10
1 2 3 4 5 6 7 8 9 0
输出:
0 3.0
0 5.0

示例2

输入:
3
0 0 0
输出:
0 0.0

题解思路
  • 遍历一次,分别记录负数和0的个数,以及所有正数的总和,求正数平均值即可
  • 注意平均值输出一位小数,float 型 %.2f 就是小数2位, %.1f 就是小数1位
代码实现
#include 

int main()
{
    int n, nums[2001], i;
    while(scanf("%d", &n) != EOF) {
        for(i = 0; i < n; ++i) {
            scanf("%d", &nums[i]);
        }
        int nega_num = 0;
        int zero_num = 0;
        float sum = 0;
        for(i = 0; i < n; ++i) {
            if(nums[i] == 0) {
                zero_num++;
            }
            else if(nums[i] < 0) {
                nega_num++;
            }
            else {
                sum += nums[i];
            }
        }
        float average = sum / (n - zero_num - nega_num);
        printf("%d %.1fn", nega_num, average);
    }
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/589954.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号