当前位置:网站首页>实验四 数组
实验四 数组
2022-07-06 09:22:00 【文文喜欢郭子吖】
实验四:数组
实验目的
1.掌握数组的声明、定义、初始化和使用。
2.掌握对一维或二维数组元素的访问方法。
实验内容
1. 编写程序,完成下列功能:
(1)输入20个整数到数组中;
(2)对20个数按从大到小的顺序排序,输出排序后的数组;
(3)输入一个整数x;
(4)在数组中查找x。如果找到了输出x在数组中的下标,找不到输出-1。
package code41;
import java.util.Scanner;
import java.util.Arrays; //导入Arrays类
public class code41 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int []numbers=new int[20];
System.out.println("请输入20个整数:");
for(int i=0;i<20;i++) {
numbers[i]=in.nextInt(); //通过nextInt方法依次读取用户输入数字并存入数组中
}
Arrays.sort(numbers); //将20个整数从小到大排序
for(int i = 19;i>=0;i--) {
System.out.println(numbers[i]); //逆序输出,也就是将其转换为从大到小排序
}
System.out.println("请输入一个整数x:");
int x=in.nextInt(),j=0;
for(int i=0;i<20;i++) {
if(x==numbers[i]) //在数组中查找x
{
System.out.println(i); //输出x在数组中的下标
j=1;
}
}
if(j!=1)
{
System.out.println("-1"); //找不到就输出-1
}
}
}
- 输出一个保存在二维数组中3*3矩阵,并求对角线元素之和。
package code42;
import java.util.Scanner;
public class code42 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int numbers[][]=new int[3][3]; //定义这个数组再给其分配内存空间
int i,j,sum=0;
System.out.println("请输入3*3矩阵的元素:");
Scanner in = new Scanner(System.in);
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
numbers[i][j]=in.nextInt(); //输入数组元素
if(i==j) //判断是否是对角线元素
{
sum+=numbers[i][j]; //求和
}
}
}
System.out.println("对角线元素之和为:"+sum);
System.out.println("输出3*3的数组:");
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
System.out.print(" "+numbers[i][j]); //输出二维数组
}
System.out.println();
}
}
}
3. 打印如下形式的杨辉三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
........................
输出前10行。
package code43;
public class code43 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[][]num=new int[10][10]; //定义一个十行十列的一个杨辉三角
for(int i=0;i<num.length;i++) {
for(int j=0;j<num.length;j++) {
num[i][0]=1;
num[i][j]=1; //每一行的第一列和最后一列都为1
}
}
for(int i=2;i<num.length;i++) {
for(int j=1;j<i;j++) {
num[i][j]=num[i-1][j]+num[i-1][j-1]; //每个数等于它上方两个数的和
}
}
for(int i=0;i<num.length;i++) {
for(int j=0;j<=i;j++) {
System.out.print(num[i][j]+" "); //输出杨辉三角
}
System.out.println();
}
}
}
4. 有M个人围成一圈,每人一个的编号(1.2.3.....M),从第一个人数起,报到N时这个人就出圈。再继续数,数到N时这个人又出圈。直到只剩下一个人为止,输出出圈人的顺序。M、N从键盘输入。
package code44;
import java.util.Scanner;
public class code44 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in=new Scanner(System.in);
System.out.println("请输入共有多少人:");
int M=in.nextInt();
System.out.println("报到多少时这个人就出圈:");
int N=in.nextInt();
int num[]=new int[M];
int a=M,b=-1,c=0;
for(int i=0;i<M;i++) {
c++;
num[i]=c; //给数组编号
}
System.out.println("原排序:");
for(int i=0;i<M;i++) {
System.out.print(num[i]+"\t");
}
System.out.println();
System.out.println("输出出圈人的顺序:");
while(a!=1) { //控制循环结束
for(int i=0;i<N;i++) {
b++;
if(b==M)
{
b=0; //计数
}
if(num[b]==0)
{
i--; //防止重复计数
}
}
if(num[b]!=0)
{
System.out.print(num[b]+"\t"); //输出数到的排序号
num[b]=0; //将选出的号排除
}
a--;
}
}
}
实验小结
- 定义数组时,除了要给定数组的名称、成员类型,还要为其分配内存空间,并进行初始化;
- 定义数组时,不允许在[]内指定数组元素的个数;
- 数组也不能整体赋值;
- 导入Arrays类,使用Arrays.sort()方法可将指定数组内的元素从小到大排序;
- Java数组实验题中的一些例题如矩阵、杨辉三角、约瑟夫环问题等等都有其固定的算法。
边栏推荐
- 【黑马早报】上海市监局回应钟薛高烧不化;麦趣尔承认两批次纯牛奶不合格;微信内测一个手机可注册俩号;度小满回应存款变理财产品...
- (original) make an electronic clock with LCD1602 display to display the current time on the LCD. The display format is "hour: minute: Second: second". There are four function keys K1 ~ K4, and the fun
- Inaki Ading
- Cookie和Session的区别
- Caching mechanism of leveldb
- Relationship between hashcode() and equals()
- 受检异常和非受检异常的区别和理解
- MySQL锁总结(全面简洁 + 图文详解)
- Zatan 0516
- 4. Branch statements and loop statements
猜你喜欢
随机推荐
C language Getting Started Guide
Pit avoidance Guide: Thirteen characteristics of garbage NFT project
仿牛客技术博客项目常见问题及解答(二)
Safe driving skills on ice and snow roads
7. Relationship between array, pointer and array
[the Nine Yang Manual] 2018 Fudan University Applied Statistics real problem + analysis
【九阳神功】2019复旦大学应用统计真题+解析
2.初识C语言(2)
2.C语言初阶练习题(2)
Redis实现分布式锁原理详解
4. Binary search
The difference between overloading and rewriting
魏牌:产品叫好声一片,但为何销量还是受挫
Mode 1 two-way serial communication is adopted between machine a and machine B, and the specific requirements are as follows: (1) the K1 key of machine a can control the ledi of machine B to turn on a
ABA问题遇到过吗,详细说以下,如何避免ABA问题
2. First knowledge of C language (2)
MySQL锁总结(全面简洁 + 图文详解)
1. First knowledge of C language (1)
Beautified table style
撲克牌遊戲程序——人機對抗