当前位置: 代码迷 >> Java相关 >> [求助]求教一道题
  详细解决方案

[求助]求教一道题

热度:209   发布时间:2006-11-24 16:40:24.0
[求助]求教一道题
排序,在命令行接受用户输入的N个数字, 以-1作为结束标志,并且-1不计算在内,对这些输入的数字进行排序输出,并计算平均数。要求不用汉字,拼音做类名,注释等等。
搜索更多相关的解决方案: 计算  标志  平均数  汉字  用户  

----------------解决方案--------------------------------------------------------
这种题目最好是自己做
----------------解决方案--------------------------------------------------------
做不出来啊
----------------解决方案--------------------------------------------------------

/*
* TestInput.java
*
* Created on 2006年11月24日, 下午5:30
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

/**
*
* @author lbf
*/

import java.io.*;
import java.util.*;
public class TestInput {
//this Vector contains the input Integers
private Vector<Integer> v;
/** Creates a new instance of TestInput */
public TestInput() {
initOther();
readInput();
}
/*
*init the Vector
*/
private void initOther(){
v=new Vector<Integer>();
}
/*
*read the input number and do other
*/
private void readInput(){
try{
System.out.println("Please input number and press Enter,-1 for end!");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input=null;
while((input=br.readLine())!=null){
int i=Integer.parseInt(input);
if(i!=-1){
v.add(i);
}else{
break;
}
}
Collections.sort(v);
System.out.println("The new sort numbers are:");
int sum=0;
for(int out:v){
sum+=out;
System.out.print(out+"\t");
}
System.out.println();
System.out.print("The average is:");
double ave=sum*1.0/v.size();
System.out.println(ave);
}
catch(Exception exe){
exe.printStackTrace();
}
}
public static void main(String[] args) {
new TestInput();
}
}


----------------解决方案--------------------------------------------------------
谢谢斑竹
----------------解决方案--------------------------------------------------------
以下是引用千里冰封在2006-11-24 17:43:26的发言:

/*
* TestInput.java
*
* Created on 2006年11月24日, 下午5:30
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

/**
*
* @author lbf
*/

import java.io.*;
import java.util.*;
public class TestInput {
//this Vector contains the input Integers
private Vector<Integer> v;
/** Creates a new instance of TestInput */
public TestInput() {
initOther();
readInput();
}
/*
*init the Vector
*/
private void initOther(){
v=new Vector<Integer>();
}
/*
*read the input number and do other
*/
private void readInput(){
try{
System.out.println("Please input number and press Enter,-1 for end!");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input=null;
while((input=br.readLine())!=null){
int i=Integer.parseInt(input);
if(i!=-1){
v.add(i);
}else{
break;
}
}
Collections.sort(v);
System.out.println("The new sort numbers are:");
int sum=0;
for(int out:v){
sum+=out;
System.out.print(out+"\t");
}
System.out.println();
System.out.print("The average is:");
double ave=sum*1.0/v.size();
System.out.println(ave);
}
catch(Exception exe){
exe.printStackTrace();
}
}
public static void main(String[] args) {
new TestInput();
}
}

受累受累,太敬业了
----------------解决方案--------------------------------------------------------

希望楼主以后可以自己完成


----------------解决方案--------------------------------------------------------
for(int out:v)这个是怎么意思?
----------------解决方案--------------------------------------------------------
相当于
for(int i=0;i<v.size();i++)

JDK1.5新增的,增强型FOR循环
----------------解决方案--------------------------------------------------------

我推荐尽量不要这样用,不通用


----------------解决方案--------------------------------------------------------
  相关解决方案