码迷,mamicode.com
首页 > 其他好文 > 详细

记负均正II

时间:2016-08-18 19:44:04      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值

输入任意个整数

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

 simple:

-13 -4 -7

3 0.0

 

 1 import java.util.*;
 2 
 3 public class Test{
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         int count1 = 0,count2 = 0,count3 = 0;
 7         double average = 0,sum = 0;
 8         while (sc.hasNext()) {
 9             int j = sc.nextInt();
10                 if(j < 0)
11                     count1++;
12                 else if(j > 0){
13                     sum += j;
14                     count2++;
15                 }
16                 else
17                     count3++;
18         }//输入循环结束花括号在这里 
19             System.out.println(count1);//在simple里一定要换行 要不就报错 日啊
20             if(count2 == 0){
21                 System.out.println("0.0");
22             }
23             else{
24                 average = sum / (count2 + count3);
25                 System.out.printf("%.1f\n",average);
26             }
27             // if ((int)sum % count2 != 0)
28                 
29             // else
30                 // System.out.println((int)average);
31  
32         
33     }
34 } 

1.输入的结束判断:

如果是自己用cmd黑框框输入数据 先输入数据 然后 回车 然后键入ctrl+z结束输入 

而在oj平台直接可以

2.输出格式:注意小数点后保留一位小数

 

3.注意输入正数个数为零时 我虽然设了三个计数器来分别计算正负0的个数,但是其实不用 

if (x < 0) {
  num1++;
}else {
  num2++;
  sum += x;
}
System.out.println(num1);
if(num2 == 0)
  System.out.println("0.0");
else{
  averge = sum / num2;
  System.out.printf("%.1f\n",averge);
}

因为如果正数个数为0,0的个数不为0,可能存在分母为0的错误可能,其实不是的,sum为double,num2虽然为int但是计算的时候转成double浮点型 0.0 浮点型分母可以为0.

averge = sum / num2;

 

记负均正II

标签:

原文地址:http://www.cnblogs.com/lydandan/p/5784992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!