数组的详细介绍及练习题:

数组的详细介绍及练习题:
一.数组的定义: 数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。
二.数组的三个基本特点:

  1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
  2. 其元素必须是相同类型,不允许出现混合类型。
  3. 数组类型可以是任何数据类型,包括基本类型和引用类型。
    三.数组的声明:
    ①数组类型 [] 数组名={元素1,元素2…}
    ②数组类型 [] 数组名=new 数组类型 [元素个数]
    四.数组的初始化方式总共有三种:静态初始化、动态初始化、默认初始化。
    五.数组的遍历:数组元素下标的合法区间:[0, length-1]。我们可以通过下标来遍历数组中的元素,遍历时可以读取元素的值或者修改元素的值。
    六.方法: JDK提供的java.util.Arrays类,包含了常用的数组操作,方便我们日常开发。Arrays类包含了:排序、查找、填充、打印内容等常见的操作。
    eg:Arrays.sort( arrays );//排序 Arrays.toString( arrays );//打印七
    七.练习
    1.实现一个功能,:
    能够录入指定数量的学生成绩,
    计算最终的平均值和及格率
    中途录入数据错误:如:负数,则停止录入并提示用户数据错误,之后重新开始录入
package ArraysHome;
/**
 * 1.实现一个功能,:
 * 	能够录入指定数量的学生成绩,
 * 	计算最终的平均值和及格率
 * 	中途录入数据错误:如:负数,则停止录入并提示用户数据错误,之后重新开始录入
 */
import java.util.Scanner;
public class ScoreArray {
    public static void main(String[] args) {
        int []scoresArray=new int[20];//定义一个数组接受输入的成绩
        int agv;//平均数
        double People=0;//人数
        while (true){
            int sum=0;//总分数
            boolean flage=true;
            System.out.println("请输入该班同学的成绩:");
            for(int i=0;i<scoresArray.length;i++){//遍历数组赋值
               scoresArray[i]= new Scanner( System.in ).nextInt();//接受录入的成绩。
                if(scoresArray[i]>=60){//判断是否合格
                    People++;//合格自增
                }
                //录入总成绩
                sum+=scoresArray[i];
                if(scoresArray[i]<0){//判断格式是否正确
                    System.out.println("输入的格式不对");
                    flage=false;//格式错误便重新输入
                    break;
                }
            }
            if(flage){
                agv=sum/scoresArray.length;
                System.out.println("平均值:"+agv);
                System.out.println("及格率为:"+People/(double) scoresArray.length*100+"%");
                break;
            }else {
                System.out.println("录入错误,请重新输入该班同学的成绩:");
            }
        }

    }}



2.实现一个功能:
能够录入指定数量的数据,
录入完成侯,随机输入一个检测数字,检测其是否在之前定义的数组中

package ArraysHome;

import java.util.Scanner;

/**
 * 2.实现一个功能:
 * 	能够录入指定数量的数据,
 * 	录入完成侯,随机输入一个检测数字,检测其是否在之前定义的数组中
 */
public class DetectionText {
    public static void main(String[] args) {
        System.out.println("请指定录入数据的个数:");
        int arrayNumbers = new Scanner( System.in ).nextInt();//指定数量的数据
        int []arrays=new int[arrayNumbers];//数组接受
        System.out.println("请按录入数据的个数,定义一个数组:");//之前定义的数组
        for (int i=0;i<arrays.length;i++){
            int arraysDeserve = new Scanner( System.in ).nextInt();
            arrays[i]=arraysDeserve;
        }
        System.out.println("指定要查询的数字:");
        int Number = new Scanner( System.in ).nextInt();//指定要查询的数字
        boolean flage=true;//定义一个观察者
        while (flage){
            for(int NumberTow:arrays){//遍历数组
                if(NumberTow==Number){//判断要查询的数是否在数组中
                    System.out.println("要查询的数在数组中");
                    flage=false;//如果在这个数组中,则结束循环,不执行下边if中的语句
                }
            }
            if(flage){//如果没有执行上边代码,则表明不在数组中
                System.out.println("要查询的数不在数组中");
                break;
            }
        }

    }
    }

3.实现一个功能:
能够录入指定数量的数据
录入完成侯,将数组做排序,升序或者降序都可以
随机输入一个数字,将其按照顺序插入到数组中,并使最终的数组保持降序或者升序

package ArraysHome;

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

/**
 * 3.实现一个功能:
 * 	能够录入指定数量的数据
 * 	录入完成侯,将数组做排序,升序或者降序都可以
 * 	随机输入一个数字,将其按照顺序插入到数组中,并使最终的数组保持降序或者升序
 */
public class ScoreText {
    public static void main(String[] args) {
        int temp;
        System.out.println("请指定录入数据的个数:");
        int arrayNumbers = new Scanner( System.in ).nextInt();//指定数量的数据
        int []arrays=new int[arrayNumbers];//数组接收
        System.out.println("请按录入数据的个数,定义一个数组:");//之前定义的数组
        for (int i=0;i<arrays.length;i++){//遍历赋值
            int arraysDeserve = new Scanner( System.in ).nextInt();
            arrays[i]=arraysDeserve;
        }
        System.out.println("请输入你要添加的数字:");
        int newNumber = new Scanner( System.in ).nextInt();
        int[] tempArray=new int[arrays.length+1];//新建一个数组,但空间比原数组大一
        for(int i=0;i<arrays.length;i++) {//遍历把原数组元素赋值给新数组
            tempArray[i]=arrays[i];
        }
        tempArray[arrays.length]=newNumber;//加入新的数字
        arrays=tempArray;//新数组的内存指向原数组

        for(int j=0;j<arrays.length;j++){//冒泡排序
            for(int i=0;i<arrays.length-1-j;i++){
                if(arrays[i]<arrays[i+1]){
                    temp=arrays[i];
                    arrays[i]=arrays[i+1];
                    arrays[i+1]=temp;
                }

            }
        }
        System.out.println(Arrays.toString( arrays ));

    }
}


4.实现一个功能:
能够录入指定数量的数据
取出数组中的最大值和最小值
计算数组元素的和

package ArraysHome;

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

/**
 * 4.实现一个功能:
 * 	能够录入指定数量的数据
 * 	取出数组中的最大值和最小值
 * 	计算数组元素的和
 */
public class ArraySumText {
    public static void main(String[] args) {
        int sum=0;
        System.out.println("请指定录入数据的个数:");
        int arrayNumbers = new Scanner( System.in ).nextInt();//指定数量的数据
        int []arrays=new int[arrayNumbers];//数组接受
        System.out.println("请按录入数据的个数,定义一个数组:");//之前定义的数组
        for (int i=0;i<arrays.length;i++){//循环赋值
            int arraysDeserve = new Scanner( System.in ).nextInt();
            arrays[i]=arraysDeserve;
            sum+=arrays[i];//数组和
        }
        System.out.println("数组元素的和:"+sum);
        Arrays.sort( arrays );//排序
        System.out.println("最大值:"+arrays[arrayNumbers-1]);//最大值
        System.out.println("最小值"+arrays[0]);//最小值
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值