首页 > 试题广场 >

记负均正II

[编程题]记负均正II
  • 热度指数:227243 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入 n 个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0
本题有多组输入数据,输入到文件末尾。

数据范围: ,其中每个数都满足

输入描述:

输入任意个整数,每行输入一个。



输出描述:

输出负数个数以及所有非负数的平均值

示例1

输入

-13
-4
-7

输出

3
0.0
示例2

输入

-12
1
2

输出

1
1.5
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    let len = 0,len2 = 0;
    let count = 0
    let average  = 0
    
    while(line = parseInt(await readline())){
       if(line <0){
        len +=1
       }else{
        len2 +=1
        count +=line
       }
    }
    if(len2 == 0){
        average  = '0.0'
    }else{
        average  = (count/len2).toFixed(1)
    }
    console.log(len+ '\n' + average )
}()

编辑于 2024-03-28 11:38:51 回复(0)
通过率咋这么低

这块陷阱就是不知道几行 所以nodejs 必定在close来计算
const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
const lines = [];
rl.on("line", function (line) {
  lines.push(parseInt(line));
});
rl.on("close", function () {
  let i = 0;
  let a = 0;
  lines.forEach((item) => {
    if (item < 0) {
      i++;
    } else {
      a += item;
    }
  });
  console.log(i);
  if (lines.length === i) {
    console.log('0.0');
  } else {
    console.log((a / (lines.length - i)).toFixed(1));
  }
});


发表于 2022-06-15 23:17:46 回复(0)
这个获取的输入值是真的坑  他最后一个字符居然是空格    我就说算平均值总是不对 ,还有加的时候需要吧输入值 转换成Number计算
function f5(arr){
    let minus = 0 // 负数
    let positive = [] // 正数
    for (let i = 0 ; i<arr.length ;i++) {
       if(arr[i]){
           if(arr[i]<0){
               minus++
           }else{
               positive.push(arr[i])
           }
       }
    }
    let length = positive.length
    let total = 0
    for (let i in positive){
        total+= Number(positive[i])
    }
    let mean = total/length
    console.log(minus);
    console.log(mean.toFixed(1))
}
while(line=readline()){
    var lines = line.split(' ');
   f5(lines)
}


发表于 2020-07-28 15:42:33 回复(0)
给你一个测试用例,自己体会吧。

输入:
1 -2 3 1
12 2 -2 3
-1 -2 -3 -4
输出:
1
1.7
1
5.7
4
0.0



发表于 2020-07-02 14:31:16 回复(0)
var readline = require('readline');
var ri = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

var arr2=[];
var cout=0,sum=0,count=0;
ri.on("line",function(line){
    line=line.trim();
    var arr2=line.split(' ');
for(var i=0;i<arr2.length;i++){     if(arr2[i]<0){         cout++;     }else{                     count++;             sum+=parseInt(arr2[i]);             }
}

var ppp=sum/count;
console.log(cout);
console.log(ppp.toFixed(1));
    
})

发表于 2018-06-13 21:12:41 回复(0)

问题信息

难度:
6条回答 35345浏览

热门推荐

通过挑战的用户

查看代码