Java编程、输入数字个数、平均数、最小值、最大值减去最小值、

问题描述:

Java编程、输入数字个数、平均数、最小值、最大值减去最小值、
write a JAVA program to read in a sequence of integers and print out the following quantities,each on a new line and in the following order,your program should be:
1) the number of integers read in.
2) the average value- which need not be an integer.注意,平均值不是实数!
3) the minimum value of the integers.
4) the maximum difference between any of the integers.
以上要求顺序不能颠倒、跪求!
1个回答 分类:综合 2014-11-08

问题解答:

我来补答
测试通过,基本满足你题目要求,写得不太好
import java.util.*;
import java.util.regex.*;
public class t10
{
public static void main(String [] args)throws InterruptedException
{
Scanner in=new Scanner(System.in);
System.out.println("输入一组数,用逗号分开");
String s = in.next();
number a = new number(s);
average b = new average(s);
min c =new min(s);
dif d= new dif(s);
Thread t1=new Thread(a);
Thread t2=new Thread(b);
Thread t3=new Thread(c);
Thread t4=new Thread(d);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
//整数个数
class number implements Runnable
{
int sum=0;
List dlist=new ArrayList();
public number(String a)
{
String[] str = a.split(",");
for(int i = 0; i < str.length; i++)
{
Pattern pattern = Pattern.compile("[0-9]+");
Matcher matcher = pattern.matcher((CharSequence) str[i]);
boolean result = matcher.matches();
if (result) {
dlist.add(Double.parseDouble(str[i]));}
}
sum=dlist.size();
}
public void run()
{
System.out.println("整数的个数为:"+sum);
}
}
//平均数
class average implements Runnable
{
double sum=0;
double aver=0;
public average(String b)
{
String[] str = b.split(",");
double [] num =new double[str.length];
for(int i = 0; i < str.length; i++)
{
num[i]=Double.parseDouble(str[i]);
}
for (int i = 0; i < num.length; i++)
{
sum=sum+num[i];
}
aver=(double)(sum/num.length);
}
public void run()
{
try{
Thread.sleep(100);
}catch(InterruptedException e)
{
e.printStackTrace();
}
System.out.println("平均数为:"+aver);
}
}
//最小的整数
class min implements Runnable
{
double m=0;
List dlist=new ArrayList();
public min(String c)
{
String[] str = c.split(",");
for(int i = 0; i < str.length; i++)
{
Pattern pattern = Pattern.compile("[0-9]+");
Matcher matcher = pattern.matcher((CharSequence) str[i]);
boolean result = matcher.matches();
if (result) {
dlist.add(Double.parseDouble(str[i]));}
}
}
public void run()
{
try{
Thread.sleep(300);
}catch(InterruptedException e)
{
e.printStackTrace();
}
if(dlist.size()!=(0))
{
m=Collections.min(dlist);
System.out.println("最小整数为:"+m);
}
else
{System.out.println("最小整数为:没有整数");}
}
}
//两个相差最大的整数
class dif implements Runnable
{
double min=0;
double max=0;
double bet=0;
List dlist=new ArrayList();
public dif(String d)
{
String[] str = d.split(",");
for(int i = 0; i < str.length; i++)
{
Pattern pattern = Pattern.compile("[0-9]+");
Matcher matcher = pattern.matcher((CharSequence) str[i]);
boolean result = matcher.matches();
if (result) {
dlist.add(Double.parseDouble(str[i]));}
}
}
public void run()
{
try{
Thread.sleep(500);
}catch(InterruptedException e)
{
e.printStackTrace();
}
if(dlist.size()!=(0) && dlist.size()!=(1))
{
min=Collections.min(dlist);
max=Collections.max(dlist);
bet=max-min;
System.out.println("最小整数和最大整数相差:"+bet);
}
else
{
System.out.println("最小整数和最大整数相差:整数少于2个无法计算");
}
}
}
 
 
展开全文阅读
剩余:2000
上一页:希望高人解答