华为机试在线训练_记负均正II(输入输出控制)

记负均正II

http://www.nowcoder.com/questionTerminal/64f6f222499c4c94b338e588592b6a62

/*
本文系「人工智能安全」(微信公众号)原创,转载请联系本文作者(同博客作者)。
欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。
我是一名有诗人气质的网络安全工程师
期待与你的思想交流碰撞出智慧的花火
水木清华
2020-03-20
记负均正II
*/
#include <iostream>
#include<iomanip> //包含格式控制函数 setiosflags() 和输出数的位数控制函数 setprecision() 的头文件
using namespace std;
//主函数
int main()
{
    int num; //输入整数
    int count1 = 0; //计数器,记录负数的个数
    int count2 = 0; //计数器,记录正数的个数
    float sum = 0.0; //记录正数之和
    float mean = 0.0; //均值
    while (cin >> num)
    {
        if (num < 0)
        {
            count1++;
        }
        else if (num > 0)
        {
            count2++;
            sum += num;
        }
    }
    //避免 0 做除数
    if (count2 > 0)
    {
        mean = sum / count2;
    }
    //setiosflags(ios::fixed|ios::showpoint) 控制输出格式;setprecision() 设置精度,控制输出数的位数;
    //对应的,本题需要实现“若出现小数,则保留一位小数”,即控制小数部分有且仅有一位输出,故有如下代码。
    cout << count1 << '\n' << setiosflags(ios::fixed|ios::showpoint) << setprecision(1) << mean << endl;
    return 0;
}
大厂面试 文章被收录于专栏

分享有用的面试经历,倾吐有心的面试感悟,讲述有趣的面试故事,以飨读者。 常用语言是C++,编程力求规范整洁,题解清晰完整,像写诗一样去写代码。 本专栏文章系「人工智能安全」(微信公众号)原创,转载请联系本文作者。 欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。 我是一名有诗人气质的网络安全工程师,期待与你的思想交流碰撞出智慧的花火。

全部评论
如果数量很大,int类型的sum会越界,是不是需要考虑这一点呢?
1 回复 分享
发布于 2021-06-02 11:56
while (cin >> num)如果手动输入的话是个死循环吧?
点赞 回复 分享
发布于 2020-08-23 23:42

相关推荐

dian3b:挺妙的,如果上纲上线显得不合人心,但是这样以来既能监督适当摸鱼,也有一定的人文关怀。
摸鱼被leader发现了...
点赞 评论 收藏
分享
评论
12
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务