1.分析以下需求,并用代码实现:
(1)定义一个int类型的二维数组
(2)获取该二维数组最小元素,并输出
class Demo1{
/*
*1.分析以下需求,并用代码实现:
(1)定义一个int类型的二维数组
(2)获取该二维数组最小元素,并输出
*/
public static void main(String[] args) {
int[][] arr ={{25,26,78},{-1,2,3},{8,9,5},{100,58,69}};//定义一个int类型的二维数组
System.out.println("最小值为:"+getMin(arr));//调用求最小值函数求出最小值,并打印
}
public static int getMin(int[][] arr){
int min=arr[0][0];//保存一个二维数组的元素
for (int i = 0;i < arr.length ;i++ ) {//循环二维数组
for (int j=0;j < arr[i].length;j++ ) {
if(min>arr[i][j]){//比较大小
min=arr[i][j];//如果大就交换
}
}
}
return min;//返回最小值
}
}
2.分析以下需求,并用代码实现:
(1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
(2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
提示思路:先查找最大值和最小值出现的索引。
class Demo1{
/*
*(1)定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}
(2)将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组
*/
public static void main(String[] args) {
int[] arr ={6,2,9,15,1,5,20,7,18};//定义一个int类型的数组
changeArray(arr);
for (int i=0;i<arr.length ;i++ ) {
System.out.print(arr[i]+"\t");
}
System.out.println();
}
public static void changeArray(int[] arr){
int maxIndex=-1;//存储最大值下标
int minIndex=-1;//存储最小值下标
int max=arr[0];//存储最大值容器
int min=arr[0];//存储最小值容器
for (int i=0;i< arr.length;i++ ) {
//找最大
if(max<arr[i]){
max=arr[i];
maxIndex=i;
}
//找最少
if(min>arr[i]){
min=arr[i];
minIndex=i;
}
}
//最小元素与第一位元0素进行交换
int temp=arr[0];
arr[0]=arr[minIndex];
arr[minIndex]=temp;
//数组最大元素与最后一位元素进行交换
temp=arr[arr.length-1];
arr[arr.length-1]=arr[maxIndex];
arr[maxIndex]=temp;
}
}
3.分析以下需求,并用代码实现:(扩展)
(1)键盘录入6个int类型的数据存数数组arr中
(2)将arr数组中的内容反转
(3)将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
(4)最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
(5)打印最终的数组(实现了1-4步之后的数组)
(6)如:用户输入的6个int数字为[1,2,3,4,5,6],最后输出的结果为[6, 5, 4, 1, 2, 3]
import java.util.Scanner;
class Demo1{
public static void main(String[] args) {
int[] arr =new int[6];//定义一个int类型的二维数组
Scanner sc=new Scanner(System.in);//创建键盘录入对象
//键盘录入6个int类型的数据存数数组arr中
for (int i=1;i<=6 ;i++ ) {
arr[i-1]=sc.nextInt();
}
revArray(arr);
printArray(arr);
changeArry(arr);
printArray(arr);
}
/**
*数组翻转
*/
public static void revArray(int[] arr){
for (int i = 0;i < arr.length/2 ;i++ ) {
int temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
}
/**
*数组打印
*/
public static void printArray(int[] arr){
System.out.print("[");
for (int i = 0;i < arr.length ;i++ ) {
if(i!=arr.length-1){
System.out.print(arr[i]+",");
}else{
System.out.print(arr[i]);
}
}
System.out.print("]");
}
/**
*数组角标为奇数的互相交换
*/
public static void changeArry(int[] arr){
for (int i=0;i<arr.length-2 ;i++ ) {
if(i % 2 !=0){//是奇数进
int temp=arr[i];
arr[i]=arr[i+2];
arr[i+2]=temp;
if(i+4>=arr.length){//找最后的奇数
temp=arr[1];
arr[1]=arr[i+2];
arr[i+2]=temp;
}
}
}
}
}
4.把今天讲过的其他案例再练习一遍
|
|