初学者日志 12/15 数组

来源:互联网 发布:原型设计软件 编辑:程序博客网 时间:2024/06/06 00:04
花了一周的时间将“变量、数据类型和运算符”、“选择结构”、“循环结构”、“循环嵌套”学习过了。今天进入数组的学习,内容不多,重在练习。以下是今天所做的4个练习:

package videoCourseOfJava;import java.util.Scanner;/** * @author 一条子非鱼的沫 * @date: 2017/12/15 * @see 从控制台输入一个数组并对此数组进行运算 */public class 数组01 {    // private static int[] score;    public static void main(String[] args) {        int[] score = new int[5];//声明一个数组并为数组分配内存空间        Scanner sc = new Scanner(System.in);// 使用Scanner方法从控制台获取信息(此处是用于获取数组的数据信息)        for (int i = 0; i < score.length; i++) {// score.length表示分数类数组的长度,也可以输入一个具体的数值            System.out.print("请输入第" + (i + 1) + "个同学的分数:");            score[i] = sc.nextInt();// 从控制台获取一个数长度为7的数组        }        int sum = 0;// 定义总分数的初始值为0        for (int i = 0; i < score.length; i++) {//使用for循环结构计算求出从控制台输入的score的总和            sum = sum + score[i];// 改变总分数的初始值,并且累计求和        }        double avg = sum / 5.0;// 声明并赋值求出平均数        System.out.println("所输入分数总和为:" + sum);        System.out.println("所输入分数平均分为:" + avg);        sc.close();// 关闭输入的流,释放内存    }}

“数组01”输出效果图

package videoCourseOfJava;import java.util.Scanner;/** * @author 一条子非鱼的沫 * @see 数组求和与数组中数据的验证 */public class 数组02 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);// 调用Scanner方法        int[] nums = { 84, 75, 39, 68, 28, 96, 76 };// 声明数组并集体赋值        int sum = 0;// 定义一个整型的初始值,用于整数求和        System.out.print("数组为:");        for (int i = 0; i < nums.length; i++) {// nums.length表示nums数组的长度            System.out.print(nums[i] + "  ");            sum += nums[i];// 累计相加,求出nums数组中所有数值的总和sum        }        System.out.println("数组的数据总和为:" + sum);        System.out.print("请输入要查找的数:");        int n = sc.nextInt();// 从控制台获取一个整型的数据        for (int i = 0; i < nums.length; i++) {            if (n == nums[i]) {// 依次验证数据n是否与既定数组中的某个数值相等,如果有,则执行if结构内的语句                System.out.print("你所查找的数在这个数组中第" + (i + 1) + "个数字出现");            }        }        sc.close();// 关闭输入的流,并释放内存    }}

“数组02”输出效果图

package videoCourseOfJava;import java.util.Arrays;//数组进行排序所引用的包import java.util.Scanner;/** * @author 一条子非鱼的沫 * @see 控制台输入数组并自动进行升序排列 */public class 数组03 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int[] score = new int[5];        System.out.println("请输入5个成绩:");        for (int i = 0; i < score.length; i++) {            score[i] = sc.nextInt();        }        Arrays.sort(score);// 数组排序命令,用于将数组中的数据由小到大进行排序        System.out.print("排序后的数组元素为:");        for (int i : score) {// foreach主要用于遍历数组或集合,表示把score中的值依次赋给i            System.out.print(i + " ");        }        sc.close();// 关闭输入的流,并释放内存    }}

“数组03”输出效果图

package videoCourseOfJava;import java.util.Scanner;/** * @author 一条子非鱼的沫 * @date 2017/12/15 * @see 插入算法:对一个既定数组添加新的元素,可运用于处理补录学生成绩等问题 */public class 数组04 {    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner sc = new Scanner(System.in);        // int[] list=new int[]{99,85,82,63,60};//在进行插入算法时,不宜集体进行数据声明        int[] list = new int[6];// 声明数组并分配空间        list[0] = 99;        list[1] = 85;        list[2] = 82;        list[3] = 63;        list[4] = 60;// 对其中的5个数据进行赋值        System.out.println("插入前的数组元素为:");        for (int val : list) {// 把list中的值依次赋给val            System.out.println(val);// 输出的数组中,list[5]的数值默认为0        }        System.out.println("请输入要插入的值:");        int num = sc.nextInt();// 从控制台输入一个需要插入的数值        // 声明变量记录要插入的位置        int index = -1;// index表示插入数的下标        for (int i = 0; i < list.length; i++) {            if (num > list[i]) {// 在数组中,按下标顺序依次排除比num大的数,找到第一个比插入值小的数并将这个数的下标赋给index                index = i;// 要找的位置                break;            }        }        for (int j = list.length - 1; j > index; j--) {            // 从排列最后的数开始,即从list.length-1开始依次将前一个数赋值给后一个数,直到index位置(不包括)            // 其达到的效果即为:将被赋值的index之后的数组整体向后移动一个位置            list[j] = list[j - 1];// 将下标数值比index大的下标所对应的数值数整体向后移动,即给index让出位置        }        // 把要插入的值放在索引index的位置        list[index] = num;// 将所插入的数值赋给插入的位置(index)        System.out.println("插入后的数组元素为:");        for (int val : list) {// 把list中的值再依次赋给val            System.out.println(val);// 输出新排序的数组        }        sc.close();// 关闭输入的流,并释放内存    }}

“数组04”输出效果图


【一点闲话】从英语跨向java编程,思维方面一时之间有些转换不过来,很多数学逻辑上的算法,其实并不是太难理解,但仍旧反复看了几遍之后才理解到。高中的时候是文科,但当时的数学思维其实也还不错,但大学之后就一点数学都没有接触过了。现在,其实略微有些庆幸,因为现在我的生活中,不只有文学这种感性的东西,还有一点理性的约束。
接下来将进入“类和对象”,这一章节之前看过,但感觉似乎很难,希望能够平安度过。

原创粉丝点击