JAVA16 数组遍历
描述
将用户输入的六个数字填入数组并找出数组中最大值和最小值。
输入描述:
随机输入的6个整数。
输出描述:
输出数组中的最大值,最小值(最大值最小值之间用空格隔开。若有多个最大值或最小值,输出一次即可,如样例2所示)
示例:
输入:1 3 5 2 4 6 输出:6 1
输入:1 1 2 3 4 4 输出:4 1
分析:
1.输入六个整数。
2.输出最大值和最小值。
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] ary = new int[6];
int max;
int min;
Scanner scanner = new Scanner(System.in);
for (int i = 0; i <ary.length ; i++) {
ary[i]=scanner.nextInt();
}
max=ary[0];
min=ary[0];
for(int i=1;i<ary.length;i++){
if(max<ary[i]){
max=ary[i];
}
if(min>ary[i]){
min=ary[i];
}
}
System.out.println(max+" "+min);
}
}
大佬代码:
将数组升序排序,第一个元素最小,最后元素最大。
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] ary = new int[6];
int max;
int min;
Scanner scanner = new Scanner(System.in);
for (int i = 0; i <ary.length ; i++) {
ary[i]=scanner.nextInt();
}
Arrays.sort(ary);
max = ary[5];
min = ary[0];
System.out.println(max+" "+min);
}
}
使用max()和min()函数。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] ary = new int[6];
int max;
int min;
Scanner scanner = new Scanner(System.in);
for (int i = 0; i <ary.length ; i++) {
ary[i]=scanner.nextInt();
}
max=ary[0];//把数组的第一个数作为初始化的数字
min=ary[0];
for(int i=0;i<ary.length;i++){
max=Math.max(ary[i],max);
min=Math.min(ary[i],min);
}
System.out.println(max+" "+min);
}
}
JAVA17 数组倒转
描述
输入6个整数,先将其输出然后再将数组倒转,再次输出数组。
输入描述:
用户随机输入的6个int类型变量。
输出描述:
先输出用户输入顺序的数组(这一步预设代码已给出)
再输出反转后的数组(输出格式为Arrays.toString(arr),参考预设代码中的输出格式)
示例:
输入:52 10 37 40 60 83 输出:[52, 10, 37, 40, 60, 83] [83, 60, 40, 37, 10, 52]
分析:
1.逆序输入。
代码:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] arr = new int[6];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
System.out.println(Arrays.toString(arr));
int temp;
for(int i=0;i<arr.length/2;i++){
temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
System.out.println(Arrays.toString(arr));
}
}
大佬代码:
使用双指针。
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int[] arr = new int[6];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
System.out.println(Arrays.toString(arr));
int left = 0, right = arr.length - 1; //双指针从首尾开始
while(left < right){
int temp = arr[left]; //交换指针元素
arr[left] = arr[right];
arr[right] = temp;
left++; //指针向中间靠
right--;
}
System.out.println(Arrays.toString(arr));
}
}
JAVA18 二维数组求和
描述
给定一个二维数组,请你编写一个求和函数,计算出这个数组元素的和。
输入描述:
无
输出描述:
输出二维数组元素的和。
示例:
输入:无 输出:5180
分析:
1.直接两次for循环取出二维数组的各个值,再求和。
代码:
public class Main {
public static void main(String[] args) {
int[][] arr = {{11,33,55},{22,44,66,88},{131,214,315,146},{928,827,726,625},{424,525}};
int sum=add(arr);
System.out.println(sum);
}
public static int add(int[][] arr) {
int sum=0;
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
sum+=arr[i][j];
}
}
return sum;
}
}
大佬代码:
两层foreach 遍历二维数组求和
public static int add(int[][] arr) {
int sum=0;
for(int[] arr1 : arr){
for(int arr2 : arr1){
sum = sum + arr2;
}
}
return sum;
}