仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,统计数组中每个随机数出现的次数,具体要求如下:
一、随机数统计
接收给定的数据(如:4 88,其中第一个数代表数组长度,第二个数代表随机数种子);
创建数组并添加随机数(随机数介于 0-19 之间);
输出随机数出现的次数(出现次数大于 0 才输出);
按随机数大小排序输出。
注意:数字分隔符为空格。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
可在右侧 “测试结果”区查看具体的测试集详情。
例:
测试输入:
20 9
预期输出:
4出现了:1 次
6出现了:3 次
8出现了:2 次
9出现了:1 次
11出现了:1 次
13出现了:3 次
15出现了:2 次
16出现了:2 次
17出现了:1 次
18出现了:2 次
19出现了:2 次
代码
import java.util.Random;
import java.util.Scanner;
public class RandomTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 接收给定数据
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
Random random = new Random(n);
// 创建Random对象,并设置随机种子
// 定义数组添加数据
int a[] = new int[m];
for(int i=0;i<m;i++){
a[i] = random.nextInt(20);
}
// 统计每个数出现的次数
for(int j=0;j<m;j++){
int count=0;
for(int i=0;i<m;i++){
if(a[i]==j) count++;
}
if(count>0){
System.out.println(j+"出现了:"+count+ " 次");
}
}
// 输出结果
/********** End **********/
}
}
矩阵相乘
二、
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,给定以下两个矩阵,求它们的乘积。
矩阵一:
⎣
⎢
⎢
⎢
⎢
⎢
⎡
5
15
32
11
4
6
65
43
88
98
7
43
22
6
66
⎦
⎥
⎥
⎥
⎥
⎥
⎤
矩阵二:
⎣
⎢
⎡
94
48
38
65
2
29
31
0
66
87
71
88
21
98
100
⎦
⎥
⎤
测试说明
平台将运行你编写的程序代码,若你的运行结果与预期输出一致,则通关。
预期输出:
1024 540 617 1477 1393
6164 2352 3303 9704 10985
5908 2804 2444 7773 7086
5486 1065 737 7733 9455
7588 2370 4480 13114 16288
// 请在Begin-End间编写完整代码,类名请使用Transpose
/********** Begin **********/
import java.util.*;
/********** End **********/
public class Transpose{
public static void main(String[] args){
int a[][] = new int[][]{{5,6,7},{15,65,43},{32,43,22},{11,88,6},{4,98,66}};
int b[][] = new int[][]{{94,65,31,87,21},{48,2,0,71,98},{38,29,66,88,100}};
int c[][] = new int[5][5];
for(int i = 0;i<5;i++){
for(int j=0;j<5;j++){
for(int m = 0;m<3;m++){
c[i][j] += a[i][m]*b[m][j];
}
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.printf("%d ",c[i][j]);
}
System.out.println();
}
}
}
三、数据去重
本关任务:去除数组中的重复数据。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,去除数组中的重复数据,具体要求如下:
接收给定的数据(如:4 88 43 43 98 #…,其中第一个数代表数组长度,其余数代表数组元素,# 号用于终止接收数据,这些数据用空格进行分隔),遇到 # 号终止接收;
创建数组并添加元素;
去除数组中重复元素。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
可在右侧 “测试结果”区查看具体的测试集详情。
例:
测试输入:
4 6 6 6 7 #
预期输出:
6
7
import java.util.Arrays;
import java.util.Scanner;
public class ArrTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 接收给定的数据
Scanner sc = new Scanner(System.in);
// 通过临时数组对原数组去重,最后将临时数组赋值给原数组
int n = sc.nextInt();
int a[] = new int[n];
for(int i=0;i<n;i++){
a[i] = sc.nextInt();
}
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++)
if(a[i]==a[j]){
for(int k=j;k<n-1;++k)
a[k]=a[k+1];
--n;
--j;
}
}
for(int i=0;i<n;i++){
System.out.println(a[i]);
}
}
}
四、大小写转换
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。
可在右侧 “测试结果”区查看具体的测试集详情。
/*
任务:创建一维字符数组并赋值(a,B,A,Z,v,b),并转化该数组中的大小写。
提示:a-z的ASCII码分别对应:97-122,A-Z的ASCII码分别对应:65-90。
输出样式:转化后的数组:[x,y,z]
*/
import java.util.Arrays;
public class MaxTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 第一步:创建数组并赋值,值为a,B,A,Z,v,b共6个字符。
char str[] = new char[6];
char[] a = {'a','B','A','Z','v','b'};
// 第二步:遍历数组元素,如果为小写,请转化为大写,如果为大写,请转化为小写。大小写的ASCII码相差32。
for(int i=0;i<6;i++){
if(a[i]>='a'&&a[i]<='z'){
a[i] = (char)((int)a[i] - 32);
}
else if(a[i]>='A'&&a[i]<='Z'){
a[i] = (char)((int)a[i] + 32);
}
}
// 第三步:输出数组元素
System.out.println("转化后的数组:"+Arrays.toString(a));
/********** End **********/
}
}