初学者日志 12/15 数组

花了一周的时间将“变量、数据类型和运算符”、“选择结构”、“循环结构”、“循环嵌套”学习过了。今天进入数组的学习,内容不多,重在练习。
以下是今天所做的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编程,思维方面一时之间有些转换不过来,很多数学逻辑上的算法,其实并不是太难理解,但仍旧反复看了几遍之后才理解到。高中的时候是文科,但当时的数学思维其实也还不错,但大学之后就一点数学都没有接触过了。现在,其实略微有些庆幸,因为现在我的生活中,不只有文学这种感性的东西,还有一点理性的约束。
接下来将进入“类和对象”,这一章节之前看过,但感觉似乎很难,希望能够平安度过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值