训练案例1
需求描述:
定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值。
操作步骤描述:
1) 定义5个元素数组。
2) 可以使用初始化数组的两种方式之一为数组元素赋值。
3) 遍历数组求数组中的最小值。
/**
* 定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值。
* 操作步骤描述:
* 1) 定义5个元素数组。
* 2) 可以使用初始化数组的两种方式之一为数组元素赋值。
* 3) 遍历数组求数组中的最小值。
*/
public class Test01 {
public static void main(String[] args) {
int [] arr={5,9,1,3,8};
int min=arr[0];
for (int i = 0; i < arr.length; i++) {
if(min>arr[i]){
min=arr[i];
}
}
System.out.println(min);
}
}
训练案例2
需求描述:
定义一个长度为3的一维数组,给每个元素赋值。(要求数组中每个元素的值是0-9的随机数)。遍历数组打印每个元素的值。
操作步骤描述:
1) 定义长度为3的数组。
2) 创建Random引用数据类型的变量。
3) 生成3个0-9的随机数,为每一个元素赋值(可以用循环,也可以不使用循环)。
4) 遍历数组,并打印每一个元素。
import java.util.Random;
/**
* 定义一个长度为3的一维数组,给每个元素赋值。(要求数组中每个元素的值是0-9的随机数)。遍历数组打印每个元素的值。
* 操作步骤描述:
* 1) 定义长度为3的数组。
* 2) 创建Random引用数据类型的变量。
* 3) 生成3个0-9的随机数,为每一个元素赋值(可以用循环,也可以不使用循环)。
* 4) 遍历数组,并打印每一个元素。
*/
public class Test02 {
public static void main(String[] args) {
int[] arr= new int[3];
Random r = new Random();
int a =r.nextInt(10);
int b =r.nextInt(10);
int c =r.nextInt(10);
arr[0]=a;
arr[1]=b;
arr[2]=c;
for (int j = 0; j < arr.length; j++) {
System.out.println(arr[j]);
}
}
}
训练案例3
需求描述:已知数组int[] nums = {5,10,15},要求创建一个新数组。
1) 新数组的长度和已知数组相同。
2) 新数组每个元素的值 是已知数组对应位置元素的2倍。
3) 在控制台中打印新数组的所有元素。
操作步骤描述:
1) 定义题目要求的已知数组。
2) 定义题目要求的新数组。
3) 根据条件为新数组中每个元素赋值。
4) 遍历新数组打印到控制台中。
/**
* 已知数组int[] nums = {5,10,15},要求创建一个新数组。
* 1) 新数组的长度和已知数组相同。
* 2) 新数组每个元素的值 是已知数组对应位置元素的2倍。
* 3) 在控制台中打印新数组的所有元素。
*/
public class Test03 {
public static void main(String[] args) {
int[] nums = {5,10,15};
int[] arr = new int[3];
for (int i = 0; i < nums.length; i++) {
arr[i]=2*nums[i];
}
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[j]+" ");
}
}
}
训练案例4
需求描述:
键盘录入一个整数,创建一个该长度的数组,为每一个元素赋值为1-10的随机整数,最后打印数组中所有值大于5且为偶数的元素。
操作步骤描述:
1.键盘录入一个整数。
2.定义长度为该整数的数组。
3.创建Random引用数据类型的变量。
4.生成5个0-9的随机数,为每一个元素赋值(建议用循环)。
5.遍历数组,输出满足条件的元素。
import java.util.Random;
import java.util.Scanner;
/**
* 键盘录入一个整数,创建一个该长度的数组,为每一个元素赋值为1-10的随机整数,最后打印数组中所有值大于5且为偶数的元素。
* 操作步骤描述:
* 1.键盘录入一个整数。
* 2.定义长度为该整数的数组。
* 3.创建Random引用数据类型的变量。
* 4.生成0-9的随机数,为每一个元素赋值(建议用循环)。
* 5.遍历数组,输出满足条件的元素。
*/
public class Test04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入该长度:");
int l = sc.nextInt();
int[] arr = new int[l];
Random r = new Random();
for (int i = 0; i < arr.length; i++) {
int n = r.nextInt(10);
arr[i]=n;
if(arr[i]>5&&arr[i]%2==0){
System.out.println(arr[i]);
}
}
}
}
训练案例5
需求描述:
1.将数字1-10保存到一个长度为10的一维数组中。
2.定义一个新数组,长度为3,取出原来数组中随机三个元素(不考虑是否重复)。
3.给新数组的元素赋值。
4.求新数组所有元素的和。
操作步骤描述:无。
import java.util.Random;
/**
* 1.将数字1-10保存到一个长度为10的一维数组中。
* 2.定义一个新数组,长度为3,取出原来数组中随机三个元素(不考虑是否重复)。
* 3.给新数组的元素赋值。
* 4.求新数组所有元素的和。
*/
public class Test05 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] arr1 = new int[3];
boolean d[] = new boolean[arr.length];
Random r = new Random();
int num =r.nextInt();
int count = 3; // 要随机取的元素个数
int n = 0;
int sum =0;
while (true) {
int temp = r.nextInt(10);
if (!d[temp]) {
if (n == count) // 取到足量随机数后退出循环
break;
n++;
sum+=arr[temp];
System.out.println("得到的第" + n + "个数组中随机数为:" + arr[temp]);
}
}
System.out.println(sum);
}
}
拓展案例
需求描述:
1)基础班考试要进行分组,键盘录入该班级总共多少组,以及每组的学生数量。
2)根据录入的组数及每组学员的数量创建二维数组。
3)利用随机数产生0-100的成绩(包含0和100)。
4)要求:
1)打印该班级中每组的不及格人数。
2)打印该班级中每组的平均分。
3)打印组的最高平均分。
4)打印班级中的不及格人数。
5)打印班级平均分。
6)演示格式如下:
请输入班级总组数:3
请输入班级中每组的人数:10
控制台输出:
第1组不及格人数为: 6 人
第1组平均分为: 52
第2组不及格人数为: 7 人
第2组平均分为: 46
第3组不及格人数为: 3 人
第3组平均分为: 69
班级中单组最高平均分为:69
班级中不及格人数为: 16 人
班级总平均分为: 56
操作步骤描述:
1) 创建键盘录入对象。
2) 定义int类型的变量zs(组数)和zps(每组的人数),并通过键盘录入给zs(组数)和zps(每组的人数)赋值。
3) 创建int类型的二维数组,int[][] arr = new int[zs][zps];
4) 创建Random对象。
5) 遍历数组。
1)随机产生[0-100]的值。
2)将随机产生的数值赋值给数组中的当前元素。
6) 分析以上打印格式,需要定义以下变量。
1)定义inGroupLower60Num(每组内低于60的学员数量),用于统计每组的不及格人数。
2)定义inClassLower60Num,用于统计班级中的不及格人数。
3)定义groupMaxAvg,用于统计单组最高平均分。
4)定义inGroupSum,用于统计每组的总分。
5)定义inClassNum,用于统计班级的人员数量。
6)定义inClassSum,用于统计班级的总分。
7) 遍历二维数组,进行以上统计。
import java.util.Random;
import java.util.Scanner;
public class Test06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入有多少组:");
int zs = sc.nextInt();
System.out.println("请输入每组的人数:");
int zps = sc.nextInt();
int[][] arry = new int [zs][zps];
Random ran = new Random();
int inGroupLower60Num = 0;//用于统计每组的不及格人数
int ClassLower60Num = 0; //用于统计班级中的不及格人数
double groupMaxAvg = 0; //用于统计单组最高平均分
int inGroupSum = 0; //用于统计每组的总分
int inClassNum = 0; //用于统计班级的人员数量
int inClassSum = 0; //用于统计班级平均分的总分
int z = 0; //单组低于60人总数
double b = 0; //班级平均分
double c = 0; //班级平均分总分
double MAX = 0;
double groupAvg = 0;//单组平均分
for (int i = 0; i < arry.length; i++) {
for (int j = 0; j < arry[i].length; j++) {
int num = ran.nextInt(101);//0-100
arry[i][j] = num;
inGroupSum += arry[i][j];
if (num < 60){
z++;
}
}
groupAvg = inGroupSum /arry[i].length;
System.out.println("第"+(i+1)+"组不及格人数为:"+ z );
System.out.println("第"+(i+1)+"组平均分为:"+ groupAvg);
if (groupAvg > MAX){
groupMaxAvg = groupAvg;
MAX = groupAvg;
}
ClassLower60Num += z;
inClassSum +=groupAvg;
groupAvg = 0;
z = 0;
inGroupSum = 0;
}
b = inClassSum / zs;
System.out.println("班级中单组最高平均分为:"+ groupMaxAvg);
System.out.println("班级中不及格人数为:"+ ClassLower60Num);
System.out.println("班级总平均分为:"+ b);
}
}