在键盘上输入3个人的信息分别的ID,姓名,性别,年龄~然后按照3个人的年龄从大到小重新排列出来!我现在输入3个人的信息只能打印出2个人的信息是为什么那?帮我看看那里错了好吗?
import java.util.*;
public class  Tesx
{
Ren[] r=new Ren[3];
public void ShuRu(){
Scanner sc=new Scanner(System.in);
for(int i=0;i<r.length;i++){
r[i]=new Ren();
System.out.println("请输入第"+(i+1)+"的人的ID");
r[i].id=sc.nextInt();
System.out.println("请输入第"+(i+1)+"的人的姓名");
r[i].name=sc.next();
System.out.println("请输入第"+(i+1)+"的人的性别");
r[i].sex=sc.next();
System.out.println("请输入第"+(i+1)+"的人的年龄");
r[i].age=sc.nextInt();
}
}
public void PaiXu(){
Ren pp=null;
for(int i=0;i<r.length-1;i++){
for(int j=i+1;j<r.length;j++){
if(r[i].age<r[j].age){
   pp=r[i];
   r[i]=r[j];
   r[j]=pp;
}
}
System.out.println("ID: "+r[i].id+" "+"姓名: "+r[i].name+" "+"性别: "+r[i].sex+" "+"年龄: "+r[i].age);
}
}
public static void main(String[] arge){
Tesx Te=new Tesx();
Te.ShuRu();
Te.PaiXu();
}
}
public class  Ren
{
int id;
String name;
String sex;
int age;
}

解决方案 »

  1.   

        public void PaiXu(){
            Ren pp=null;
            for(int i=0;i<r.length-1;i++){  //把-1去掉试试
      

  2.   

    public void PaiXu(){
            Ren pp=null;
            for(int i=0;i<r.length-1;i++){
                for(int j=i+1;j<r.length;j++){
                    if(r[i].age<r[j].age){
                       pp=r[i];
                       r[i]=r[j];
                       r[j]=pp;
                    }
                }        }
            for (int i=0;i<r.length;i++)
             System.out.println("ID: "+r[i].id+" "+"姓名: "+r[i].name+" "+"性别: "+r[i].sex+" "+"年龄: "+r[i].age);
        }