题目: 定义一个N*N二维数组,从键盘上输入值,找出每行中最大值组成一个一维数组并输出
解题关键:二维数组中每一行的最大值怎么找寻
思路:1.定义数组
2.输入数据
3.新建一个长度为N的一维数组
4.找出每行中最大值组成一个一维数组并输出;
5.遍历新数组
过程: 接下来我们根据我们的解题思路来一步步写代码
1.定义数组
Scanner sc = new Scanner(System.in);
System.out.println("请输入二维数组的数组长度");
int N = sc.nextInt();
int[][] nums = new int[N][N];
2.输入数据
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
System.out.print("第"+(i+1)+"行.第"+(j+1)+"列的数字:");
int num = sc.nextInt();
nums[i][j] = num;
}
}
sc.close();
3.新建一个长度为N的一维数组
int[] maxNums = new int[N];
4.找出每行中最大值组成一个一维数组并输出;
for (int j = 0; j < nums.length; j++) {
int max = nums[j][0];
for (int j2 = 0; j2 < nums[j].length; j2++) {
if(max < nums[j][j2]){
max = nums[j][j2];
}
}
maxNums[j] = max;
}
5.遍历新数组
System.out.print("每一行的最大值组成的数组为:");
for (int i = 0; i < maxNums.length; i++) {
System.out.print(maxNums[i] + " ");
}
完整结果如下:
为了方便大家使用,下面附上源码:
//1.定义数组
Scanner sc = new Scanner(System.in);
System.out.println("请输入二维数组的数组长度");
int N = sc.nextInt();
int[][] nums = new int[N][N];
//2.输入数据
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < nums[i].length; j++) {
System.out.print("第"+(i+1)+"行.第"+(j+1)+"列的数字:");
int num = sc.nextInt();
nums[i][j] = num;
}
}
sc.close();
//3.新建一个长度为N的一维数组
int[] maxNums = new int[N];
//4.找出每行中最大值组成一个一维数组并输出;
for (int j = 0; j < nums.length; j++) {
int max = nums[j][0];
for (int j2 = 0; j2 < nums[j].length; j2++) {
if(max < nums[j][j2]){
max = nums[j][j2];
}
}
maxNums[j] = max;
}
//5.遍历新数组
System.out.print("每一行的最大值组成的数组为:");
for (int i = 0; i < maxNums.length; i++) {
System.out.print(maxNums[i] + " ");
}
}
总结:理解找出每一行的最大值的代码,这样可以帮助我们之后的学习
明日练习:有10个数字要求分别用选择法从大到小输出
大家可以自己写写,明天中午12点我准时发出我的写法哦,明天12点不见不散
一生朋友一生情,一生有你才会赢;千山万水总是情,点个关注行不行!