用java从键盘输入若干个正数,输出这些数中大于其平均值的数

2025-04-16 04:58:24
推荐回答(2个)
回答1:

引用1楼 christal yhy的答案,考虑到浮点数的存在,特在此基础上优化一下,代码如下:

 public static void main(String[] args) {

  Scanner scan = new Scanner(System.in);

  System.out.println("请输入要输入的个数:");

  int count = scan.nextInt();

  System.out.println("请输入" + count + "个正数(按回车键输入下一个)");

  double[] array = new double[count];

  for (int i = 0; i < count; i++) {

   array[i] = scan.nextDouble();

  }

  

  double num = 0;

  double avg = 0;

  for (int i=0;i

   num=array[i]+num;

  }

  java.text.DecimalFormat df=new java.text.DecimalFormat("#.##"); //仅保留小数点后两位

  avg = num/array.length;

  System.out.println("大于输入正数的平均值 "+df.format(avg)+" 的数有:");

  for (int i=0;i

   if(avg

    System.out.print(array[i]+"   ");

   }

  }

 }

回答2:

import java.util.*;
public class kh5_1
{
public static void main(String[] args)
{
double sum=0,f=0;
int i=0;
int[] numary = new int [6];
System.out.println("请输入n个整数,每输入一个数后按Enter确认: ");
Scanner reader=new Scanner(System.in);
int x;
int n=6;
while(true)
{
x=reader.nextInt();
if(x==0)break;
sum=sum+x;
numary[i]=x;
i++;

}
System.out.println("sum="+sum);
f=sum/n;
System.out.println("f="+f);
for (int element:numary)
{
if(element>f)
{
System.out.println(""+element);
}
}
}
}