Java头歌 1.10 数组基础

第一关:初识数组

任务描述

本关任务:定义数组,使用数组。

相关知识

问:道友,我要保存4名学生的考试成绩,怎么办? 答:简单啊,定义四个变量呗。 问:那“计算全年级500名学生的考试成绩的平均值”,怎么办? 答:。。。。 数组:我来。

数组是什么

如果说我们之前使用的变量可以比作是一个装水的杯子,那么数组你可以看做是一个杯架(只能装一种杯子的杯架)。

怎么定义数组
 
  1. 变量类型[] 数组名 = {数据1,数据2,数据3,...};

怎么访问数组中的元素

访问数组中的元素使用:数组名[索引值],索引值一般也叫做数组的下标。

 
  1. 数组名[数组下标]

编程要求

Begin-End区域中定义一个int类型数组 scores,录入三个值,918860,最后输出数组中的三个值,效果如图:

测试说明

平台会对你编写的代码进行测试:若与预期输出相同,则算通关。

package step1;

public class HelloWorld {
	public static void main(String[] args) {
		/********** Begin **********/
		
		
		
		
		
		
		System.out.println("数组的第一个值为:"  );   //在这里输出数组的第一个值
		System.out.println("数组的第二个值为:"  );	//在这里输出数组的第二个值
		System.out.println("数组的第三个值为:"  );	//在这里输出数组的第三个值
		/********** End **********/
	}
}

第2关:数组的使用

package step2;

import java.util.Scanner;

public class HelloWorld {

    public static void main(String[] args) {

       

       

        /********** Begin **********/

        //在这里定义一个长度为4的字符串数组,用来存放学生姓名

        String[] stuNames =            ;  

       

        //在这里给stuNames数组赋值  分别为   张三,张无忌,张三丰,张岁山

       

       

       

        //在这里输出stuNames数组中的数据

        System.out.println("数组中的第一个数据为:" + );

        System.out.println("数组中的第二个数据为:" + );

        System.out.println("数组中的第三个数据为:" + );

        System.out.println("数组中的第四个数据为:" + );

       

       

        int[] scores;

        Scanner sc = new Scanner(System.in);

        //在这里使用Scanner获取系统输入的整数,并用获取到的数据来设置scores数组的长度

        int length =        ;

        scores =            ;

        /********** End **********/

       

        System.out.println("数组scores的长度为:" + scores.length);

    }

}

package step2;
 
import java.util.Scanner;
 
public class HelloWorld {
	public static void main(String[] args) {
				
		/********** Begin **********/
		//在这里定义一个长度为4的字符串数组,用来存放学生姓名
		String[] stuNames =new String[4];            ;  		
		//在这里给stuNames数组赋值  分别为   张三,张无忌,张三丰,张岁山
		stuNames[0]="张三";
        stuNames[1]="张无忌";
		stuNames[2]="张三丰";
		stuNames[3]="张岁山";
		//在这里输出stuNames数组中的数据
		System.out.println("数组中的第一个数据为:" + stuNames[0]);
		System.out.println("数组中的第二个数据为:" + stuNames[1]);
		System.out.println("数组中的第三个数据为:" + stuNames[2]);
		System.out.println("数组中的第四个数据为:" + stuNames[3]);
				
		int[] scores;
		Scanner sc = new Scanner(System.in);
		//在这里使用Scanner获取系统输入的整数,并用获取到的数据来设置scores数组的长度
		int length = sc.nextInt();
		scores = new int[length];
		/********** End **********/		
		System.out.println("数组scores的长度为:" + scores.length);
	}
}

第3关:选择题(1)

第4关:数组练习-平均值和最大值

任务描述

本关任务:编写一个能计算数组平均值和最大值的小程序。

相关知识

为了完成本关任务,你需要知道:1.如何获取数组的长度,2.如何遍历数组。

获取数组的长度

数组的length属性用于记录数组中有多少个元素或存储单元,即记录数组的长度是多少。

 
  1. int[] nums = new int[10];//声明一个int型数组并动态初始化其大小为10
  2. System.out.println(nums.length);//显示当前数组的大小

输出:10

遍历数组

通俗的理解,遍历数组就是:把数组中的元素都看一遍

示例如下:

 
  1. int[] arr = {1,3,5,7,9};
  2. for(int i = 0 ; i<arr.length; i++){
  3. System.out.print(arr[i] + ",");
  4. }

输出:1,3,5,7,9

如何求出最大值

要求出数组的最大值,是不是很像是打擂台呢?

对于一群人我们不知道谁最厉害,所以我们准备一个擂台,并挑选第一个人为擂主(max),擂台下的人不断的(循环)来挑战擂主,如果赢了那挑战者就是擂主,之前的擂主就下台了,直到没有挑战者了,那最后一个擂主就是最厉害的那个了。

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,计算并输出数组的平均值和最大值。

测试说明

我会对你编写的代码进行测试:

测试输入:49151232; 预期输出: 平均值:44.0 最大值:91

测试输入:511511222100; 预期输出: 平均值:57.2 最大值:151

提示:

 
  1. int a = 3;
  2. int b = 2;
  3. System.out.println(a/b);
  4. System.out.println((double)a/b);

输出: 1 1.5

package step3;
 
import java.util.Scanner;
 
public class HelloWorld {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int[] scores = new int[sc.nextInt()];
		
		//循环给数组赋值
		for(int i = 0 ; i< scores.length;i++){
			scores[i] = sc.nextInt();
		}
		/********** Begin **********/
		//在这里计算数组scores的平均值和最大值
		int sum=0;
        for(int i=0;i<scores.length;i++){
            sum+=scores[i];
        }
        double temp=(double)sum/(double)scores.length;
 
        int t=-1;
        for(int i=0;i<scores.length;i++){
            if(t<scores[i]){
                t=scores[i];
            }
        }
		System.out.println("平均值:" +temp );
		System.out.println("最大值:" +t );
		/********** End **********/
	}
}

第5关:二维数组

任务描述

本关任务:定义二维数组,输出二维数组中的数据。

相关知识

在实际考试中我们不止考试一门而是多门,那么多门考试的成绩我们需要用编程语言来处理时,我们怎么保存这些数据呢?

这就需要用到二维数组了。

二维数组

定义:二维数组是指以一维数组作为元素的数组。 语法:数据类型[行][列] 数组名

二维数组的初始化

静态:

动态:

二维数组的使用

访问数组中的元素:

使用技巧:循环输出二维数组中的数据。

结果:

编程要求

1.在右侧Begin-End区域中定义如下二维数组,使用for循环输出数组中所有的数据:

2.使用for循环将上述数组中的数据全部改为:

最后输出修改后scores数组中的数据。

测试说明

平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。

package step4;
 
public class HelloWorld {
	public static void main(String[] args) {
		/********** Begin **********/
		int[][]score={
            {92,85},
            {91,65},
            {90,33}
        };
        for(int i=0;i<score.length;i++){
            for(int j=0;j<score[i].length;j++){
                System.out.println(score[i][j]);
            }
        }
		for(int i=0;i<score.length;i++){
            score[i][0]=1;
            score[i][1]=2;
        }
		for(int i=0;i<score.length;i++){
            for(int j=0;j<score[i].length;j++){
                System.out.println(score[i][j]);
            }
        }
		/********** End **********/
	}
}

第6关:选择题(2)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值