从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值
输入任意个整数
输出负数个数以及所有非负数的平均值
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;
时间: 2024-11-13 03:38:55