[code=Java][/code]public class ArrayOrder {
static String [] names={"zhangsan","lisi","wangwu","zhaoliu"};
static String [] courses={"java","c++","oracle","JDBS","jsp"};
static int [][] scores={
{87,73,65,92,76},
{65,71,89,82,70},
{71,54,98,66,74},
{81,78,89,45,16}
};
public static void main(String[] args) {
Scanner sca=new Scanner(System.in);
System.out.println("请输入要对哪门课程的分数进行排序:");
String course=sca.next();
输出。。。。。。
System.out.println("请输入要对哪名同学的总分数进行排序:");
String name=sca.next();
输出。。。。。。
}
//编写两个函数ordercourses、ordersum,按照从小到大进行排序
//要求输出时为两列,左边一列为姓名,右边一列为成绩
------解决方案--------------------
使用集合类构造比较器 我的博客有
------解决方案--------------------
for example
- Java code
public class ArrayOrder { static String [] names={"zhangsan","lisi","wangwu","zhaoliu"}; static String [] courses={"java","c++","oracle","JDBS","jsp"}; static int [][] scores={ {87,73,65,92,76}, {65,71,89,82,70}, {71,54,98,66,74}, {81,78,89,45,16} }; public static int find(String[] source, String key) { if (key == null) {return -1;} int index = -1; for (int i=0; i<source.length; i++) { if (source[i].equalsIgnoreCase(key)) { index = i; break; } } return index; } public static void ordercourses(String course) { int index = find(courses, course); if (index == -1) { System.out.println("course not found."); return; } for (int i=0; i<scores.length; i++) { for (int j=1; j<scores.length-i; j++) { if (scores[j-1][index] > scores[j][index]) { String name = names[j-1]; names[j-1] = names[j]; names[j] = name; int[] tmp = scores[j-1]; scores[j-1] = scores[j]; scores[j] = tmp; } } } System.out.printf("%s sort:\n", course); for (int i=0; i<scores.length; i++) { System.out.printf("name=%s, score=%d\n", names[i], scores[i][index]); } } public static void ordersum(String name) { int index = find(names, name); if (index == -1) { System.out.println("name not found."); return; } for (int i=0; i<scores[index].length; i++) { for (int j=1; j<scores[index].length-i; j++) { if (scores[index][j-1] > scores[index][j]) { String course = courses[j-1]; courses[j-1] = courses[j]; courses[j] = course; for (int k=0; k<scores.length; k++) { int score = scores[k][j-1]; scores[k][j-1] = scores[k][j]; scores[k][j] = score; } } } } System.out.printf("%s sort:\n", name); for (int i=0; i<scores[index].length; i++) { System.out.printf("course=%s, score=%d\n", courses[i], scores[index][i]); } } public static void main(String[] args) { Scanner sca=new Scanner(System.in); System.out.println("请输入要对哪门课程的分数进行排序:"); String course=sca.next(); ordercourses(course); System.out.println("请输入要对哪名同学的总分数进行排序:"); String name=sca.next(); ordersum(name); }}