第一题.交换二维数组将原数组的行列输出顺序反转
代码:
public class diyi1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("---------原始数组---------");//输出
int[][] array = {{91,25,8},{56,14,2},{47,3,67}};//定义一个数组
int count = 0; //计数器
for(int i = 0; i < array.length; i++) {//循环找出地址
for(int j = 0;j < array.length;j++) {//循环输出数组里的值
System.out.print(array[i][j]+" \t");//换行
if((++count) == 3) {//判断如果输出了三个数,那就进行换行
count = 0;
System.out.println();
}
}
}
System.out.println("-----调换后位置的数组------");
int co = 0;
for(int j = 0; j < array.length; j++) {//反过来将行换列循环
for(int i = 0;i < array.length;i++) {//循环输出反过来之后的数组元素
System.out.print(array[i][j]+" \t");//换行
if((++co) == 3) {
co = 0;
System.out.println();
}
}
}
}
}
代码结果:
第二题.查询学生成绩,查询学生的答案和计算一共做对了多少道题
代码:
import java.util.Arrays;
import java.util.Scanner;
public class diyi2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
char[] array = {'B','A','D','C','C','B','C','A','D','B'};//定义一维数组
char[][] arr = {
{'D','D','D','D','A','C','B','A','A','C'},//定义二维数组
{'C','B','B','D','A','C','B','A','A','B'},
{'A','A','C','D','A','C','D','D','A','D'},
{'B','C','B','D','A','C','B','A','A','A'},
{'A','A','A','D','A','D','B','A','C','A'},
{'A','C','A','D','A','C','B','A','B','D'},
{'A','B','C','D','A','B','B','A','A','A'},
{'C','C','C','D','A','C','B','A','A','D'},
{'D','D','D','D','A','C','B','A','A','C'},
};
Scanner sc = new Scanner(System.in); //打开扫描器
System.out.println("您想调取第几位学生的答题结果(有效数字为1-8):");
int Name = sc.nextInt(); //保存输入的数据
if(Name <= 0 || Name > 8) { //保证输入的数在1-8之间
System.out.print("输入超出范围,请重新输入");
return;
}
int come = 0; //计数器,计算学生一共做对多少道题
System.out.println("第"+ Name +"个学生的答案是:");
for(int i = 0,cme = Name - i;i < arr[cme].length; ++i) {//循环计算学生做对多少到题
if(arr[cme][i] == array[i]) {
++come;
}
System.out.print(arr[cme-1][i]+" ");//输出学生的答案
}
System.out.println();
System.out.print("第"+ Name +"位同学一共答对了"+ come +"道题");
sc.close(); //关闭扫描器
}
}
代码结果: