java 题目:有三个学生,每个学生有五门课程的成绩,从键盘输入以下数据:学生号,五门课程成绩。
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String [][] arrs = new String[3][6];
for (int i = 0; i <arrs.length; i++) {
System.out.println("请输入第"+(i+1)+"学生号!");
String stuID = input.next();
arrs[i][0] = stuID;
for (int j = 1; j <arrs[i].length; j++) {
System.out.println("请输入第"+j+"门课成绩!");
int grade = input.nextInt();
if(grade<0){
System.out.println("输入有误,请重新输入第"+j+"门课成绩!");
}
arrs[i][j] = grade+"";
}
}
for (int i = 0; i < arrs.length; i++) {
for (int j = 0; j < arrs[i].length; j++) {
System.out.print(arrs[i][j]+" ");
}
System.out.println();
}
System.out.println("--------------------------------");
for (int i = 1; i < arrs[0].length; i++) {
int [] index = {i};
sort(arrs,index);
System.out.println("第"+i+"门的成绩最好的学号为:"+arrs[2][0]);
}
}
public static void sort(String[][] ob, final int[] order) {
Arrays.sort(ob, new Comparator<Object>() {
public int compare(Object o1, Object o2) {
String[] one = (String[]) o1;
String[] two = (String[]) o2;
for (int i = 0; i < order.length; i++) {
int k = order[i];
if (Integer.parseInt(one[k]) > Integer.parseInt(two[k])) {
return 1;
} else if (Integer.parseInt(one[k]) < Integer.parseInt(two[k])) {
return -1;
} else {
continue; //如果按一条件比较结果相等,就使用第二个条件进行比较。
}
}
return 0;
}
});
}
我用的是二维数组录入成绩的方便用比较最大值!你可以换个容器试试,希望能帮到你!望采纳给赞!谢谢
Scanner input = new Scanner(System.in);
String [][] arrs = new String[3][6];
for (int i = 0; i <arrs.length; i++) {
System.out.println("请输入第"+(i+1)+"学生号!");
String stuID = input.next();
arrs[i][0] = stuID;
for (int j = 1; j <arrs[i].length; j++) {
System.out.println("请输入第"+j+"门课成绩!");
int grade = input.nextInt();
if(grade<0){
System.out.println("输入有误,请重新输入第"+j+"门课成绩!");
}
arrs[i][j] = grade+"";
}
}
for (int i = 0; i < arrs.length; i++) {
for (int j = 0; j < arrs[i].length; j++) {
System.out.print(arrs[i][j]+" ");
}
System.out.println();
}
System.out.println("--------------------------------");
for (int i = 1; i < arrs[0].length; i++) {
int [] index = {i};
sort(arrs,index);
System.out.println("第"+i+"门的成绩最好的学号为:"+arrs[2][0]);
}
}
public static void sort(String[][] ob, final int[] order) {
Arrays.sort(ob, new Comparator<Object>() {
public int compare(Object o1, Object o2) {
String[] one = (String[]) o1;
String[] two = (String[]) o2;
for (int i = 0; i < order.length; i++) {
int k = order[i];
if (Integer.parseInt(one[k]) > Integer.parseInt(two[k])) {
return 1;
} else if (Integer.parseInt(one[k]) < Integer.parseInt(two[k])) {
return -1;
} else {
continue; //如果按一条件比较结果相等,就使用第二个条件进行比较。
}
}
return 0;
}
});
}
我用的是二维数组录入成绩的方便用比较最大值!你可以换个容器试试,希望能帮到你!望采纳给赞!谢谢
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |