华为机试HJ97:记负均正

简介: 华为机试HJ97:记负均正

题目描述:

首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。

0即不是正整数,也不是负数,不计入计算

输入描述:

本题有多组输入用例。

首先输入一个正整数n,

然后输入n个整数。

输出描述:

输出负数的个数,和所有正整数的平均值。

示例:

输入:

5

1 2 3 4 5

10

1 2 3 4 5 6 7 8 9 0


输出:

0 3.0

0 5.0

解题思路:

这题是简单的数字分析题。用两个vector分别存放正负数,整数平均值用mean函数计算;输出负数vector的尺寸,再设置cout的小数点保留位,用fixed和setprecision实现,之后输出mean函数的结果即可。

测试代码:

#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
using namespace std;
double mean(vector <int>& data) {
  double ans = 0.0;
  for (int i = 0; i < data.size(); i++) {
    ans += data[i];
  }
  ans = ans / data.size();
  return ans;
}
int main()
{
    int number;
    while(cin>>number)
    {
        vector<int> pos;
        vector<int> neg;
        for(int i=0;i<number;++i)
        {
            int t;
            cin>>t;
            if(t>0)
                pos.push_back(t);
            else if(t<0)
                neg.push_back(t);
        }
        double result = mean(pos);
        cout<<neg.size()<<" ";
        cout<<fixed<<setprecision(1)<<result<<endl;
    }
}
相关文章
华为机试HJ105:记负均正II
华为机试HJ105:记负均正II
119 1
华为机试HJ96:表示数字
华为机试HJ96:表示数字
109 1
华为机试HJ107:求解立方根
华为机试HJ107:求解立方根
148 1
华为机试HJ103:Redraiment的走法
华为机试HJ103:Redraiment的走法
183 2
华为机试HJ95:人民币转换
华为机试HJ95:人民币转换
130 1
|
测试技术
华为机试HJ77:火车进站
华为机试HJ77:火车进站
127 1
|
机器学习/深度学习 算法 数据安全/隐私保护
华为机试HJ28:素数伴侣
华为机试HJ28:素数伴侣
103 0
华为机试HJ75:公共子串计算
华为机试HJ75:公共子串计算
华为机试HJ56:完全数计算
华为机试HJ56:完全数计算