编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,对给定二维字符数组排序(把所有元素按照字母降序排序),并输出排序后的结果,输出二维数组时注意数组中的每行数字之间用空格分开,每行中最后一个数字后面也要有一个空格。
注意:不要改变数组的大小范围。
测试说明
平台将运行你编写的程序代码,若你的运行结果与预期输出一致,则通关。
预期输出:
z v t s
s r r q
p o h g
e d d a
开始你的任务吧,祝你成功!
参考答案
public class Transpose {
public static void main(String[] args) {
// 定义二维数组并初始化
char[][] a = {
{'d','v','g','r'},{'h','s','r','a'},{'q','e','t','z'},{'o','p','d','s'}};
// 请在Begin-End间编写代码
/********** Begin **********/
// 第一步:排序,从第一个元素开始,依次取每个元素与该元素之后的每个元素比较大小
for (int i = 0; i < a.length; i++) { // 二维数组的长度
for (int j = 0; j < a[i].length; j++) { // 每个一维数组的长度
int n = j + 1;
for (int m = i; m < a.length; m++) { // 排序
for (; n < a[i].length; n++) {
if (a[i][j] < a[m][n]) {
char max = a[m][n];
a[m][n] = a[i][j];
a[i][j] = max;
}
}
n = 0; // 此处是给n从第二个一维数组开始取0这个坐标
}
}
}
// 第二步:输出排序后的数组
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
/********** End **********/
}
}