湖北师范大学-Java入门 - 数组进阶

目录

第1关:数组的复制

第2关:数组中元素的查找

第3关:交换算法

第4关:选择排序

第5关:冒泡排序


第1关:数组的复制

编程要求
在右侧编辑器Begin-End中填充代码,将arr1数组中的数据全部复制给arr2数组,最后输出arr2中所有的数据。

测试说明
我会对你的程序进行测试,如下:
测试输入:1,3,12
预期输出:
1
3
12
测试输入:2,13,11
预期输出:
2
13
11

开始你的任务吧,祝你成功!

package step1;

import java.util.Scanner;

public class HelloWorld {
	public static void main(String[] args) {
		//动态构建arr1
		int[] arr1 = new int[3];
		Scanner sc = new Scanner(System.in);
		for(int i = 0 ; i< arr1.length ; i++){
			arr1[i] = sc.nextInt();
		}
		/********** Begin **********/
		//创建数组arr2
		int[] arr2 = new int[3];
        
		
		//使用for循环将arr1的数据复制给arr2
		int i=0;
		for(int k = 0 ; k< arr2.length ; k++){
			arr2[k] = arr1[i];
            i++;
		}
		
		
		//输出arr2
		for(i=0;i<arr2.length;i++)
        {
            System.out.println(arr2[i]);
        }
		
		
		/********** End **********/
	}
}

第2关:数组中元素的查找

编程要求
在右侧编辑器Begin-end处填充代码,实现在数组中查找指定字符串位置的功能。

测试说明
测试输入:张三
预期输出:张三在数组的第1个位置

测试输入:张富贵
预期输出:张富贵在数组的第5个位置

开始你的任务吧,祝你成功!

package step2;

import java.util.Scanner;

public class HelloWorld {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		//str为要查找的字符串
		String str = sc.next();
		
		/********** Begin **********/
		//创建数组   arr  给数组赋值 {"张三","张三丰","张无忌","王二麻子","张富贵"}
		String arr[]={"张三","张三丰","张无忌","王二麻子","张富贵"};
        
        for(int i=0;i<arr.length;i++)
        {
            if(arr[i].equals(str))
            System.out.println(arr[i]+"在数组的第"+(i+1)+"个位置");

        }

		/********** End **********/
	}
}

第3关:交换算法

编程要求
是时候检验一下啦,在右侧编辑器Begin-end中填充代码,完成两个变量的交换吧。

测试说明
测试输入:3,5
预期输出:
5
3
测试输入:4,2
预期输出:
2
4

开始你的任务吧,祝你成功!

package step3;

import java.util.Scanner;

public class HelloWorld {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		/********** Begin **********/
		//将a的值赋给b   b的值赋给a
		int c;
        c=a;
        a=b;
        b=c;

		/********** End **********/
		System.out.println(a);
		System.out.println(b);
	}
	
}

第4关:选择排序

编程要求
在右侧Begin-End区域中添加代码,实现对数组arr的降序排序,并输出排序后的arr数组。

测试说明
我会对你的程序进行测试;
预期输入:6,6,5,0,2,8,9
预期输出:[9, 8, 6, 5, 2, 0]

预期输入:4,3,12,1,13
预期输出:[13, 12, 3, 1]

开始你的任务吧,祝你成功!

package step4;

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

public class HelloWorld {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//动态创建数组
		int[] arr = new int[sc.nextInt()];
		for(int i = 0 ; i< arr.length ; i++){
			arr[i] = sc.nextInt();
		}
		/********** Begin **********/
        
		for(int i=0;i<arr.length-1;i++)
        {
           int max=i;
            for(int j=(i+1);j<arr.length;j++)
            {
                if(arr[max]<arr[j])
                {
                    max=j;
                }
            }
                    int temp=arr[max];
                    arr[max]=arr[i];
                    arr[i]=temp;
                
            
        }
		System.out.println(Arrays.toString(arr));
			/********** End **********/
	}
}

第5关:冒泡排序

编程要求
在编辑器Begin-end处填充代码,使用冒泡排序对数组arr进行升序排序,最后输出排序之后数组arr中的数据。

测试说明
预期输入:6,9,5,8,0,2,6
预期输出:[0, 2, 5, 6, 8, 9]

预期输入:4,3,12,13,0
预期输出:[0, 3, 12, 13]

开始你的任务吧,祝你成功!

package step5;

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

public class HelloWorld {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//动态创建数组
		int[] arr = new int[sc.nextInt()];
		for(int i = 0 ; i< arr.length ; i++){
			arr[i] = sc.nextInt();
		}
		/********** Begin **********/
        int n=arr.length;
	for(int i=0;i<n-1;i++)
    {
        int min=i;
        for(int j=i+1;j<n;j++)
        {
            if(arr[min]>arr[j])
           {
                min=j;
                int temp=arr[i];
                arr[i]=arr[j];
                arr[j]=temp;
                i++;
           }
           else{
           min++;
           i++;
           }
        }
         n--;
        i=0-1;
    }
 System.out.println(Arrays.toString(arr));
	
		/********** End **********/
	}
}	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值