题目:
1.定义一个函数,获取某个数组中的最小值
2.定义一个数组,数组成员10个,找出数组中最大数连同下标一起输出
3.B哥去参加青年歌手大奖赛,有10个评委打分,(去掉一个最高一个最低)求平均分?
4.定义数组,存放5个学生的成绩【成绩值自己设定】,将成绩从大到小排序,获得成绩之和,平均成绩,最小成绩,最大成绩。
5.提取一个方法,将指定数组中的数组元素进行反转
例如:{10,23,2,45,6}--->{6,45,2,23,10}
6.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
答案:
import java.util.Arrays;
import java.util.Scanner;
public class test01{
public static void main(String[] args) {
//Q1
int[] arrQ1 = {1,2,3,4,5};
System.out.println("最小值:"+minNum(arrQ1));
//Q2
int [] arrQ2 = {1,2,3,4,5,6,7,8,9,10};
searchNum(maxNum(arrQ2),arrQ2);
//Q3
int [] arrQ3 = {1,2,3,4,5,6,7,8,9,10};
System.out.println("去掉极值后,平均分:"+calculateScores(arrQ3));
//Q4
int [] arrQ4 = {60,70,80,90,100};
Arrays.sort(arrQ4);
System.out.println("平均成绩:"+Scores(arrQ4));
System.out.println("最低分:"+minNum(arrQ4));
System.out.println("最高分:"+maxNum(arrQ4));
//Q5
int[] arr = {10, 23, 2, 45, 6};
reverseArr(arr);
for (int element : arr) {
System.out.println(element + " ");
}
//Q6
Scanner sc = new Scanner(System.in);
// 输入数组
System.out.println("输入数组长度:");
int length = sc.nextInt();
int[] arrQ6 = new int[length];
System.out.println("输入数组元素:");
for (int i = 0; i < length; i++) {
arrQ6[i] = sc.nextInt();
}
// 调用交换方法
swapMinMax(arrQ6);
// 输出交换后的数组
System.out.println("交换后的数组:");
for (int element : arrQ6) {
System.out.print(element + " ");
}
sc.close();
}
public static int minNum(int[] num){
int minNum = num[0];
for(int i=0;i<num.length;i++){
if(num[i]<num[0]){
minNum = num[i];
}
}
return minNum;
}
public static int maxNum(int[] num){
int maxNum = num[0];
for(int i=0;i<num.length;i++){
if(num[i]>num[0]){
maxNum = num[i];
}
}
return maxNum;
}
public static void searchNum(int num1,int[]num) {
for(int i=0;i<num.length;i++){
if(num1==num[i]){
System.out.println("找到了,下标为"+i);
}
}
}
public static double calculateScores(int[] num) {
int calculateScores=0;
for(int element:num){
if (element!=minNum(num)&&element!=minNum(num)){
calculateScores +=element;
}
}
//System.out.println(calculateScores);
return calculateScores/(num.length-2);
}
public static double Scores(int[] num) {
int Scores=0;
for(int element:num){
Scores +=element;
}
System.out.println(Scores);
return Scores/(num.length);
}
private static void reverseArr(int[] array) {
int start = 0;
int end = array.length - 1;
while (start < end) {
int temp = array[start];
array[start] = array[end];
array[end] = temp;
start++;
end--;
}
}
private static void swapMinMax(int[] array) {
if (array == null || array.length < 2) {
System.out.println("数组长度太小,无法进行交换。");
return;
}
// 找到最大和最小元素的索引
int maxIndex = 0;
int minIndex = 0;
for (int i = 1; i < array.length; i++) {
if (array[i] > array[maxIndex]) {
maxIndex = i;
} else if (array[i] < array[minIndex]) {
minIndex = i;
}
}
// 与第一个元素交换
swap(array, 0, maxIndex);
// 与最后一个元素交换
swap(array, array.length - 1, minIndex);
}
// 交换数组中两个位置的元素
private static void swap(int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}