实验08:数组
实验目的:
定义数组初始化
1. 知道怎么样声明、创建和初始化各种类型的数组
2. 理解二维数组的概念,能够声明、创建和初始化各种类型的二维数组
3. 掌握对一维或二维数组元素的访问方法
4. 掌握不规则二维数组的声明、创建和初始化以及访问的方法了解Arrays类及System类中关于数组操作的方法的使用
实验内容
1. 编写程序,掌握数组的声明和访问数组元素,了解数组对象length的作用
2. 编写程序,掌握二维数组的定义和应用
3. 编写程序,掌握二维不规则数组的定义和使用
4. 编写程序,熟悉命令行参数
实验数据记录及分析(或程序及运行结果)
1、使用随机数定义一个包含10个整数的数组,要求求出其中的奇数的个数和偶数的个数输出出来。
package practise;
import java.util.Random;
import java.util.Scanner;
public class P {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random rand = new Random();
        int nums[] = new int[10];
        int odd=0,even=0;
       
        for(int i=0;i<10;i++){
            nums[i]=rand.nextInt(100);
            System.out.print(nums[i]+"\t");
            if(nums[i]%2==0){
                even++;
            }
            else{
                odd++;
            }
        }
        System.out.println();
        System.out.println("The number of odd numbers: "+odd);
        System.out.println("The number of even numbers: "+even);
}
}
2、按照要求运行下面的程序,回答问题。
public class CommandParameter {
public static void main(String[] args) {
      for(int i=0;i<args.length;i++){
      System.out.println("第"+i+"个参数是"+args[i]);
      }
    }
}
1) 请按照下面的运行命令运行,并写出运行结果。
Java CommandParameter  Alice Mike  Mary
第0个参数是 :Alice
第1个参数是 :Mike
第2个参数是 :Mary
2) 你认为args数组的作用是什么?
存放开始运行时传入的参数的引用
3) 请写出运行时args数组中每个位置存放的元素值
第一个为:Alice
第二个为:Mike
第三个为:Mary
3、在一大堆数据中出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。
你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。
输入格式:
你的程序首先会读到一个正整数n,1<=n<=10。然后是n个整数。
然后利用随机数,产生n个随机1~20的整数。
输出格式:
如果这些整数中存在重复的,就输出:
YES
否则,就输出:
NO
输入样例:
5   
输出样例:
1 2 3 1 4 
YES
package practise;
import java.util.Random;
import java.util.Scanner;
public class P {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random rand = new Random();
        System.out.println("Please input a number as Array length:");
        int n=sc.nextInt();
        int nums[] = new int[n];
       
        for(int i=0;i<n;i++){
            nums[i]=rand.nextInt(20)+1;
            System.out.println(nums[i]+"\t");
        }
       
        boolean f = false;
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                if(nums[i]==nums[j]){
                    f = true;
                    break;
                }
            }
        }
       
        if(f){
            System.out.println("YES");
        }
        else{
            System.out.println("NO");
    }
}
}
4、有如下数组
int myArray[] = { 1, 2, 3, 4, 5, 6 };
int yourArray[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
请利用System.arraycopy方法编写一个程序,复制myArray数组的所有内容到yourArray数组,放在yourArray数组下标0开始的位置,并输出yourArray数组的每个元素。
本次实验不做此项
5、有整型数组,按顺序包含元素:10,7,9,2,4,5,1,3,6,8,请编写程序利用Arrays.sort方法对数组进行排序,并输出该数组的每个元素。
本次实验不做此项
评语:                            日期:  年  月  日