日期:2014-05-20  浏览次数:20825 次

在数组里输入数字后,为什么输出的数组各个位上都显示a[0]位上的数字
请教各位大虾多多指教,为什么下面这段程序运行后,五个数字全都显示数组中a[0]里的数字呢?小妹万分感激
import   java.io.*;
public   class   maopao1   {
public   static   void   main   (String[]   args)   {
int   a[]=new   int[5];
        int   i,j,x;
try
{  
System.out.println( "请输入5个整数: ");
for(int   s=0;s <5;s++)
a[s]=Integer.parseInt(new   BufferedReader(new   InputStreamReader(System.in)).readLine());
}catch   (IOException   e)   {   }
for(i=1;i <5;i++)
for(j=1;j <5-i;j++)
{
if(a[j]> a[j+1])
{
x=a[j];
a[j]=a[j+1];
a[j+1]=x;
}
}
System.out.println( "排序结果是: ");
for(int   s=0;s <5;s++)
System.out.print( "   "+a[s]);
}        
}

------解决方案--------------------
排序有误。
------解决方案--------------------
for(i=1;i <5;i++)
for(j=1;j <5-i;j++)
怎么是以1开始的呢?

------解决方案--------------------
import java.io.*;
public class maopao1 {
public static void main (String[] args) {
int a[]=new int[5];
int i,j,x;
try
{
System.out.println( "请输入5个整数: ");
for(int s=0;s <5;s++)
a[s]=Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());
}catch (IOException e) { }
for(i=1;i <5;i++)
for(j=0;j <5-i;j++)
{
if(a[j]> a[j+1])
{
x=a[j];
a[j]=a[j+1];
a[j+1]=x;
}
}
System.out.println( "排序结果是: ");
for(int s=0;s <5;s++)
System.out.print( " "+a[s]);
}
}
给分啊!!
------解决方案--------------------
import java.io.*;
public class maopao1
{
public static void main(String args[])throws Exception
{
int array[] = new int[5];
String str;
System.out.println( "请输入5个整数: ");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
for(int i=0;i <array.length;i++)
{
str = in.readLine();
array[i] = Integer.parseInt(str);
}
for(int i=0;i <array.length-1;i++)
{
for(int j=i+1;j <array.length;j++)
{
int a;
if(array[i]> array[j])
{
a = array[i];
array[i] = array[j];
array[j] = a;
}
}
}

for(int i=0;i <array.length;i++)
{
System.out.println( "array[ "+i+ "]= "+array[i]);
}
}
}