![]() |
#2
寒冰0032015-08-04 17:39
|

import java.util.*;
public class guanlixitong1 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("请输入学生人数:");
int renshu=in.nextInt();//存储学生人数
System.out.println("请输入课程数目:");
int courseNum=in.nextInt();//存储课程数目
String[] name=new String[renshu];//声明一个数组String用来存储学生的姓名
String[] course=new String[courseNum];//声明一个String数组来存储课程的名字
int[][] number=new int[renshu][courseNum];//声明一个int数组来存储各科成绩
int[] sum=new int[renshu];//声明一个int数组来存储总分
int[] avg=new int[renshu];//声明一个int数组来存储平均分
String[] str=new String[renshu];
for(int i=0;i<course.length;i++){
System.out.println("请输入第"+(i+1)+"门课程的名字");
course[i]=in.next();
}
for(int i=0;i<renshu;i++){
int s=0;
String str11="";
System.out.println("请输入学生的姓名:");
name[i]=in.next();//用来存储学生的姓名
for(int j=0;j<courseNum;j++){
System.out.println("请输入学生"+name[i]+course[j]+"成绩");
number[i][j]=in.nextInt();//用来存储特定学生的特定成绩
s+=number[i][j];//求总分
str11+=number[i][j]+"\t";//把一个学生各科成绩整合为字一个字符串符串
}
sum[i]=s;
avg[i]=s/courseNum;
str[i]=name[i]+"\t"+str11+sum[i]+"\t"+avg[i];//把学生名字,各科成绩,总分,平均分整合为一个字符串
}
for(int i=0;i<str.length-1;i++){ //冒泡排序
for(int j=0;j<str.length-1;j++){
if(sum[j]<sum[j+i]){
String t2=str[j];
str[j]=str[j+1];
str[j+1]=t2;
}
}
} //冒泡排序
/*
*输出效果
*/
System.out.print("学生");
for(int i=0;i<course.length;i++){
System.out.print("\t"+course[i]);//循环输出每个科目的名称
}
System.out.print("\t总分\t平均分\t排行榜");
System.out.println();
for(int i=0;i<renshu;i++){
System.out.println(str[i]+"\t第"+(i+1)+"名");
}
}
}
排序不正确,感觉是冒泡排序那里出了问题,可是不知道具体错哪了,求助public class guanlixitong1 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("请输入学生人数:");
int renshu=in.nextInt();//存储学生人数
System.out.println("请输入课程数目:");
int courseNum=in.nextInt();//存储课程数目
String[] name=new String[renshu];//声明一个数组String用来存储学生的姓名
String[] course=new String[courseNum];//声明一个String数组来存储课程的名字
int[][] number=new int[renshu][courseNum];//声明一个int数组来存储各科成绩
int[] sum=new int[renshu];//声明一个int数组来存储总分
int[] avg=new int[renshu];//声明一个int数组来存储平均分
String[] str=new String[renshu];
for(int i=0;i<course.length;i++){
System.out.println("请输入第"+(i+1)+"门课程的名字");
course[i]=in.next();
}
for(int i=0;i<renshu;i++){
int s=0;
String str11="";
System.out.println("请输入学生的姓名:");
name[i]=in.next();//用来存储学生的姓名
for(int j=0;j<courseNum;j++){
System.out.println("请输入学生"+name[i]+course[j]+"成绩");
number[i][j]=in.nextInt();//用来存储特定学生的特定成绩
s+=number[i][j];//求总分
str11+=number[i][j]+"\t";//把一个学生各科成绩整合为字一个字符串符串
}
sum[i]=s;
avg[i]=s/courseNum;
str[i]=name[i]+"\t"+str11+sum[i]+"\t"+avg[i];//把学生名字,各科成绩,总分,平均分整合为一个字符串
}
for(int i=0;i<str.length-1;i++){ //冒泡排序
for(int j=0;j<str.length-1;j++){
if(sum[j]<sum[j+i]){
String t2=str[j];
str[j]=str[j+1];
str[j+1]=t2;
}
}
} //冒泡排序
/*
*输出效果
*/
System.out.print("学生");
for(int i=0;i<course.length;i++){
System.out.print("\t"+course[i]);//循环输出每个科目的名称
}
System.out.print("\t总分\t平均分\t排行榜");
System.out.println();
for(int i=0;i<renshu;i++){
System.out.println(str[i]+"\t第"+(i+1)+"名");
}
}
}


只有本站会员才能查看附件,请 登录
附张运行结果图,输入的数据和输出都正确,就是排序不对求大神赐教