首页 新闻 搜索 专区 学院

新手求助;读取输入的十个数比且进行排列。但是我的代码不读取输出总为0。高手帮助解决。

0
悬赏园豆:5 [已解决问题] 解决于 2010-11-05 08:19

package Package1;
import java.io.*;
public class LianXi {
 public static void main(String[]args){
  int i,x,m,j;
  //定义两个数组
  int a[]=new int[10];
  byte b[]=new byte[10];
  for(i=0;i<10;i++){
   try{
    System.in.read(b);
    String s=new String(b);
    x=Integer.parseInt(s.trim());
    a[i]=x;
    
   }
   catch(Exception ee){}
   //用for循环进行排序
   for(i=0;i<a.length;i++)
    for(j=i;j<a.length;j++)
     if(a[j]<a[i]){
      m=a[i];
      a[i]=a[j];
      a[j]=m;
      }
  }
  System.out.println("输出排列后的数组:");
  for(i=0;i<a.length;i++)
   System.out.println(a[i]+" ");
}
}

问题补充: 谢谢啊,用System.in.println(); 读取数据转换成int型就好比输入数字12则数组中存储12。
夏枫林的主页 夏枫林 | 初学一级 | 园豆:180
提问于:2010-11-04 16:43
< >
分享
最佳答案
0

参考

/********************************************************/
/* 快速排序法(QuickSort)                               */
/* Author:Carl                                                   */
/* Create   Date:09/21/2007                             */
/********************************************************/
public   int[]   QuickSort(int[]   array)   {

Sort(array,0,array.length-1);
return   array;
}

private   void   Sort(int[]   array   ,int   low,int   height)
{
    int   pviotpos;
    if(low <height)
    {
    pviotpos=Partition(array,low,height);
    Sort(array,low,pviotpos-1);
    Sort(array,pviotpos+1,height);
    }
}

private   int     Partition(int[]   array,int   i,int   j)
  {
 
  int   pivot   =array[i];
  while(i <j)
  {
  while(i <j&&array[j]> =pivot)
  j--;
 
  if(i <j)
  array[i++]=array[j];
 
  while(i <j   &&array[i] <=pivot)
  i++;
  if(i <j)
array[j--]=array[i];
  }
  array[i]=pivot;
  return     i;        
        }  
       
      /********************************************************/
/* 冒泡排序法(BubleSort)                               */
/* Author:Carl                                                   */
/* Create   Date:09/21/2007                             */
/********************************************************/
      public   int[]   BubbleSort(int[]   array)
      {
      int   i=0;
      boolean   flag=true;
      while(i <array.length   &&   flag)
      {
      int   temp=0;
      flag=false;
      for(int   j=0;j <array.length-i-1;j++)
      {
      if(array[j]> array[j+1])
      {
      temp=array[j];
      array[j]=array[j+1];
      array[j+1]=temp;
      flag=true;
      }
      }
      i++;
      }
      return   array;
      }
     
      /********************************************************/
/* 选择排序法(SimpleSelectSort)                 */
/* Author:Carl                                                   */
/* Create   Date:09/21/2007                             */
/********************************************************/
      public   int[]   SimpleSelectSort(int[]   array)
      {
      int   i,j,k,temp;
      for(i=0;i <array.length-1;i++)
      {
      k=i;
      for(j=i+1;j <array.length;j++)
      {
      if(array[j] <array[k])
      {
      k=j;
      }
      }
      if(k!=i)
      {
      temp=array[k];
      array[k]=array[i];
      array[i]=temp;
      }
      }
      return   array;
     
      } 
      
/********************************************************/
/* 插入排序法(InsertSort)                                                                 */
/* Author:Carl                                                                                */
/* Create   Date:09/21/2007                                                            */
/********************************************************/
      public   int[]   InsertSort(int[]   array)
      {
      int   i,j,temp;
      for(i=1;i <array.length;i++)
      {
      j=i-1;
      temp=array[i];
      while(j> =0&&temp <array[j])
      {
      array[j+1]=array[j];
      j--;
      }
      array[j+1]=temp;
      }
      return   array;
      }
     
      /********************************************************/
/* 二分排序法(BinarySort)                             */
/* Author:Carl                                                   */
/* Create   Date:09/21/2007                             */
/********************************************************/
      public   int[]   BinarySort(int[]   array)
      {
      int   left,right,middle,i,j;
      for(i=1;i <array.length;i++)
      {
      left=0;
      right=array.length-1;
      int   pivot=array[i];
     
      while(left <=right)
      {
      middle=(right+left)/2;
      if(pivot> array[middle])
      {
      left=middle+1;
      }else
      {
      right=middle-1;
      }
      }
      for(j=i-1;j> =left;j--)
      array[j+1]=array[j];
     
      array[left]=pivot;
      }
      return   array;
      } 

收获园豆:5
LoujaDy | 小虾三级 |园豆:908 | 2010-11-04 16:53
package Package1; import java.io.*; public class LianXi { public static void main(String[]args){ int i,x,m,j; //定义两个数组 int a[]=new int[10]; byte b[]=new byte[10]; for(i=0;i<10;i++){ try{ System.in.read(b); String s=new String(b); x=Integer.parseInt(s.trim()); a[i]=x; } catch(Exception ee){} } //用for循环进行排序 for(i=0;i<a.length;i++) for(j=i+1;j<a.length;j++) if(a[j]<a[i]){ m=a[i]; a[i]=a[j]; a[j]=m; } System.out.println("输出排列后的数组:"); for(i=0;i<a.length;i++) System.out.println(a[i]+" "); } }
夏枫林 | 园豆:180 (初学一级) | 2010-11-05 16:21
这是正确的代码。呵呵 自己解决了 呵呵 谢谢各位啊
夏枫林 | 园豆:180 (初学一级) | 2010-11-05 16:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册