根据教程写了一个class。运行之后与预期的结果不一致。怀疑是\t的问题。请大神们看一眼
/** * Created by rabbit on 2014-4-15. */ import java.util.*; public class A5_18 { public static void main(String[] args){ Scanner in=new Scanner(System.in); System.out.println("请输入学生的数量"); int renshu=in.nextInt();//接收学生的数量 System.out.println("请输入科目的数量"); int kemuNUM=in.nextInt();//接收科目的数量 String[] name=new String[renshu];//创建存储学生名字的数组 String[] kemu=new String [kemuNUM];//创建存储科目名字的数组 int [][] number= new int[renshu][kemuNUM];//创建存储学生成绩的数组 int [] sum=new int[renshu];//创建存储学生成绩总分的数组 int [] avg=new int[renshu];//创建存储学生平均成绩的数组 String[] arr=new String[renshu];//创建 for(int i=0;i<kemuNUM;i++)//循环输入课程的名称 { System.out.println("请定义第"+(i+1)+"门课程的名字"); kemu[i]=in.next(); } for(int i=0;i<renshu;i++)//循环输入学生名字的名称 { int S=0; System.out.println("请输入第"+(i+1)+"个人的名字"); name[i]=in.next(); String arr11=""; for(int j=0;j<kemuNUM;j++){//循环输入学生的成绩 System.out.println("请输入"+(name[i])+kemu[j]+"成绩"); number[i][j]=in.nextInt(); S+=number[i][j]; arr11+=number[i][j]+"\t"; } sum[i]=S; avg[i]=S/kemuNUM; arr[i]=name[i]+"\t"+arr11+sum[i]+"\t"+avg[i]; } for (int i=0;i<sum.length-1;i++){ for(int j=0;j<sum.length-1;j++){ if (sum[j]<sum[j+1]){ int t1=sum[j]; String t2=arr[j]; sum[j]=sum[j+1]; arr[j]=arr[j+1]; sum[j+1]=t1; arr[j+1]=t2; } } } System.out.print("学生"); for(int i=0;i<kemu.length;i++){ System.out.print("\t"+kemu[i]); } System.out.print("\t总分\t平均分\t排名"); System.out.println(); for (int i=0;i<renshu;i++){ System.out.println(arr[i]+"\t"+"第"+(i+1)+"名"); } } }
输出结果为
学生 语文 数学 英语 总分 平均分 排名
流星 78 98 88 264 88 第1名
刘 89 79 87 255 85 第2名
输出结果不能对齐
在命令行里是这样的。多输几个/t试试,数字后面输出两个/t
谢谢
/**
* Created by rabbit on 2014-4-15.
*/
import java.util.*;
public class A5_18 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("请输入学生的数量");
int renshu=in.nextInt();//接收学生的数量
System.out.println("请输入科目的数量");
int kemuNUM=in.nextInt();//接收科目的数量
String[] name=new String[renshu];//创建存储学生名字的数组
String[] kemu=new String [kemuNUM];//创建存储科目名字的数组
int [][] number= new int[renshu][kemuNUM];//创建存储学生成绩的数组
int [] sum=new int[renshu];//创建存储学生成绩总分的数组
int [] avg=new int[renshu];//创建存储学生平均成绩的数组
String[] arr=new String[renshu];//创建
for(int i=0;i<kemuNUM;i++)//循环输入课程的名称
{
System.out.println("请定义第"+(i+1)+"门课程的名字");
kemu[i]=in.next();
}
for(int i=0;i<renshu;i++)//循环输入学生名字的名称
{
int S=0;
System.out.println("请输入第"+(i+1)+"个人的名字");
name[i]=in.next();
String arr11="";
for(int j=0;j<kemuNUM;j++){//循环输入学生的成绩
System.out.println("请输入"+(name[i])+kemu[j]+"成绩");
number[i][j]=in.nextInt();
S+=number[i][j];
arr11+=number[i][j]+"\t"+"\t";
}
sum[i]=S;
avg[i]=S/kemuNUM;
arr[i]=name[i]+"\t"+arr11+sum[i]+"\t"+"\t"+avg[i]+"\t";
}
for (int i=0;i<sum.length-1;i++){
for(int j=0;j<sum.length-1;j++){
if (sum[j]<sum[j+1]){
int t1=sum[j]; String t2=arr[j];
sum[j]=sum[j+1]; arr[j]=arr[j+1];
sum[j+1]=t1; arr[j+1]=t2;
}
}
}
System.out.print("学生");
for(int i=0;i<kemu.length;i++){
System.out.print("\t"+kemu[i]);
}
System.out.print("\t总分\t平均分\t排名");
System.out.println();
for (int i=0;i<renshu;i++){
System.out.println(arr[i]+"\t"+"第"+(i+1)+"名");
}
}
}