- 计算一维数组中最大值和最小值的数据之和;
package org.oracle.test;
public class Arr01 {
public static void main(String[] args) {
int[] arr = { 6, 3, 2, 7, 9, 1, 5, 4, 4, 4, 10, 9 };
int max = arr[0];
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
} else if (min > arr[i]) {
min = arr[i];
}
}
System.out.println(min + max);
}
}
Console:
11
- 把一个数组中的最大值和最小值进行互换;
package org.oracle.test;
import java.util.Arrays;
import java.util.Scanner;
public class Arr02 {
public static void main(String[] args) {
int arr[] = {4,2,1,6,8,5,10};
int max = 0;
int min = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[max] < arr[i]) {
max = i;
}
if (arr[min] > arr[i]) {
min = i;
}
}
int temp = arr[max];
arr[max] = arr[min];
arr[min] = temp;
for (int a : arr) {
System.out.print(a + " ");
}
}
}
Console:
4 2 10 6 8 5 1
- 定义两个int类型的数组,把第一个数组的最大值和第二个数组的最小值进行互换,然后遍历两个数组(数组中不包含重复的元素);
package org.oracle.test;
import java.util.Arrays;
public class Arr03 {
public static void main(String[] args) {
int arr1[] = { 1, 3, 5, 7, 9 };
int arr2[] = { 2, 4, 6, 8, 10 };
Arrays.sort(arr1);
Arrays.sort(arr2);
int temp = arr1[arr1.length-1];
arr1[arr1.length-1] = arr2[0];
arr2[0] = temp;
System.out.print("数组一:");
for(int a1:arr1) {
System.out.print(a1+" ");
}
System.out.println();
System.out.print("数组二:");
for(int a2:arr2) {
System.out.print(a2+" ");
}
}
}
Console:
数组一:1 3 5 7 2
数组二:9 4 6 8 10
- (经典案例)请编程实现下面的要求:在编程竞赛中,有10个评委
通过键盘录入方式为参赛的选手打分(整数),选手的最后得分为:去掉一个最高分和一个最低分后其余8个选手的平均值。(求平均值);
public class Arr04 { //方法一
public static void main(String[] args) {
int num[] = new int[10];//创建新数组,定义长度为10
Scanner input = new Scanner(System.in);
for(int i = 0 ; i< 10; i++) {
num[i] = input.nextInt();//键盘录入10个同学的成绩
}
int max = num[0];//定义最大值
int min = num[0];//定义最小值
for(int i = 1; i < 10;i++) {
if(max<num[i]) {
max = num[i];//遍历10个数找到最大值
}
if(min>num[i]) {
min = num[i];//遍历10个数找到最小值
}
}
int sum = 0;
for(int i =0;i<10;i++) {
sum+=num[i];//计算出总分数
}
System.out.println((sum-min-max)/8.0);//总分数减去最大值和最小值 除以8就是想要的答案
}
}
package org.oracle.test;
import java.util.Arrays;
import java.util.Scanner;
public class Arr04_2 { // 方法二
public static void main(String[] args) {
int num[] = new int[10];
Scanner input = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
num[i] = input.nextInt();
}
Arrays.sort(num); //数组排序
int arr1[] = new int[8];//创建新数组
System.arraycopy(num, 1, arr1, 0, arr1.length);//数组复制(原数组,原数组起始下标,新数组,新数组起始下标,复制的长度)
int sum = 0;
for (int a : arr1) {
sum += a; //新数组八个数加起来
}
System.out.println("平均成绩为" + sum / 8.0);
}
}
Console:
8
2
10
8
8
8
8
8
8
8
8.0
- 现在有如下的一个数组:
Int[] arr1 = {1,2,0,5,6,0,2,0,0,4,5,0,7,0,8},要求将以上数组中值为 0的项去掉,将不为0的值存入到一个新的数组,生成的新数组为 int[] arr2 = {1,2,5,6,2,4,5,7,8}
package org.oracle.test;
public class Arr05 {
public static void main(String[] args) {
int arr1[] = { 1, 2, 0, 5, 6, 0, 2, 0, 0, 4, 5, 0, 7, 0, 8 };
int count = 0;
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != 0) {
count++;
}
}
int arr2[] = new int[count];
int j = 0;
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != 0) {
arr2[j++] = arr1[i];
}
}
for (int a : arr2) {
System.out.print(a + " ");
}
}
}
Console:
1 2 5 6 2 4 5 7 8
- 复习题,做下面这道题:
键盘录入一个数,求1(包括1)到这个数(包括)以内的奇数和,输出形式为:
package org.oracle.test;
import java.util.Scanner;
public class Arr06 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = input.nextInt();
getSum(num);
}
public static void getSum(int num) {
int j = 0;
for (int i = 1; i <= num; i += 2) {
j += i;
if (i == 1) {
System.out.print(i);
} else {
System.out.print("+" + i);
}
}
System.out.print("=" + j);
}
}
Console:
请输入一个数:
25
1+3+5+7+9+11+13+15+17+19+21+23+25=169