java- 数组练习题1

时间:2023-02-23 12:17:45

/*
声明一个char类型的数组, 从键盘录入6个字符
【1】遍历输出
【2】排序
【3】倒序输出

【1】从键盘输入5句话,将这五句话逆序输出(不需要排序)
运行效果

======================================
大家早上好
明天会更好
北京欢迎你
长城长
太阳出来了

逆序输出

太阳出来了
长城长
北京欢迎你
明天会更好
大家早上好

【2】有一组数分别为18,25,7,36,13,2,89,63求出最小的值,并将最小的数与最小的数所在的下标输出

运行效果:

最低积分为:2
最低积分所在的下标为:5

【3】从键盘录入10个数,统计出合法的数,(1,2,3)为合法数,其它数是非法数

运行效果:

请输入十个整数
9
5
3
4
5
2
1
3
4
5
数字1的个数是:1
数字2的个数是:1
数字3的个数是:2
非法数字的个数是:6

【4】有一整数数组,{1,3,-1,5,-2},并将数据复制到新数组中
要求逆序输出新数组中的数,同时并将小于0的元素按0存储,

运行效果:

原数组:
1 3 -1 5 -2

新数组

0 5 0 3 1

【5】从键盘接受10个整数保存在数组中,将10个数中最大的与第一个元素交换,最小的与最后一个元素交换,
其余元素位置不变,输出数组元素的值。

45
65
2 –>minIndex=2
89 –>index=3
23

数组名[index]与数组名[0] –>使用第三变量
数组名[minIndex]与数组名[数组名.lenght-1] –>使用第三变量
* */

import java.util.Arrays;
import java.util.Scanner;

import org.omg.Messaging.SyncScopeHelper;

public class Shuzulianxi1 {
public static void main(String[] args) {
//show();

    //show1();
//show2();
//show3();
//show4();
show5();
}
/*
* 声明一个char类型的数组, 从键盘录入6个字符

【1】遍历输出
【2】排序
【3】倒序输出
*/
public static void show(){
char[] arr=new char[6];
Scanner input=new Scanner(System.in);
System.out.println(“请输入6个字符”);
for (int i = 0; i < arr.length; i++) {
arr[i]=input.next().charAt(0);
}
Arrays.sort(arr);//排序
System.out.println(Arrays.toString(arr));

    System.out.print("[");
for (int j = arr.length-1; j >=0; j--) {
System.out.print(arr[j]+" ");
}
System.out.println(" ]");
}
/*
【1】从键盘输入5句话,将这五句话逆序输出(不需要排序)

运行效果

======================================
大家早上好
明天会更好
北京欢迎你
长城长
太阳出来了

逆序输出

太阳出来了
长城长
北京欢迎你
明天会更好
大家早上好*/
public static void show1(){
Scanner input=new Scanner(System.in);
String[] arr=new String[5];
System.out.println(“请输入五句话”);
for (int i = 0; i < arr.length; i++) {
arr[i]=input.next();
}
System.out.println(“倒序输出”);
for (int j = arr.length-1; j>=0; j–) {
System.out.println(arr[j]);
}
}

/*

【2】有一组数分别为18,25,7,36,13,2,89,63求出最小的值,并将最小的数与最小的数所在的下标输出

运行效果:

最低积分为:2
最低积分所在的下标为:5
*/
public static void show2(){
int[] arr={18,25,7,36,13,2,89,63};
System.out.println(“===================”);
System.out.println(Arrays.toString(arr));
int index=0;

    for (int i = 1; i < arr.length; i++) {
if( arr[index]> arr[i]){
index=i;
}
}
System.out.println("最低积分是:"+arr[index]);
System.out.println("最低积分所在的下标是:"+index);


}
/*
【3】从键盘录入10个数,统计出合法的数,(1,2,3)为合法数,其它数是非法数

运行效果:

请输入十个整数
9
5
3
4
5
2
1
3
4
5
数字1的个数是:1
数字2的个数是:1
数字3的个数是:2
非法数字的个数是:6
*/
public static void show3(){
Scanner input =new Scanner(System.in);

        int[] arr1=new int[10];
int sum1=0;
int sum2=0;
int sum3=0;
int sum4=0;
System.out.println("请输入十个整数");
for (int i = 0; i < arr1.length; i++) {
arr1[i]=input.nextInt();
if(arr1[i]==1){
sum1++;
}else
if(arr1[i]==2){
sum2++;
}else
if(arr1[i]==3){
sum3++;
}else
{
sum4++;
}
}
System.out.println("数字1的个数是:"+sum1);
System.out.println("数字2的个数是:"+sum2);
System.out.println("数字3的个数是:"+sum3);
System.out.println("非法数字数字的个数是:"+sum4);


}
/*

【4】有一整数数组,{1,3,-1,5,-2},并将数据复制到新数组中
要求逆序输出新数组中的数,同时并将小于0的元素按0存储,

运行效果:

原数组:
1 3 -1 5 -2

新数组

0 5 0 3 1
*/
public static void show4(){
int[] arr={1,3,-1,5,-2};
int[] newarr=new int[arr.length];
System.arraycopy(arr, 0, newarr, 0, arr.length);//复制数组
System.out.println(“======================”);
System.out.println(“原数组”);
System.out.println(Arrays.toString(arr));
for (int i = 0; i < newarr.length; i++) {
if(newarr[i]<0)
newarr[i]=0;
}

        System.out.println("新数组");
System.out.println(Arrays.toString(newarr));
System.out.print("[");
for (int j = newarr.length-1; j >=0; j--) {
System.out.print(newarr[j]+", ");
}
System.out.println(" ]");
}

/*

【5】从键盘接受10个整数保存在数组中,将10个数中最大的与第一个元素交换,最小的与最后一个元素交换,
其余元素位置不变,输出数组元素的值。

45
65
2 –>minIndex=2
89 –>index=3
23

数组名[index]与数组名[0] –>使用第三变量
数组名[minIndex]与数组名[数组名.lenght-1] –>使用第三变量
*/
public static void show5(){
Scanner input =new Scanner(System.in);
System.out.println(“请输入10个整数”);
int[] arr=new int[5];
for (int i = 0; i < arr.length; i++) {//向数组内传值
arr[i]=input.nextInt();
}
System.out.println(Arrays.toString(arr));
//int index=0;//用来存放最大值;
//int minIndex=arr[arr.length-1];//用来存放最小值
int max=0;
for (int j = 1; j < arr.length; j++) {
if(arr[max]