JAVA作业3&实验3

您所在的位置:网站首页 c中重新写入数组并打印啥意思 JAVA作业3&实验3

JAVA作业3&实验3

2023-05-22 13:54| 来源: 网络整理| 查看: 265

7-1 多数组排序 (20分)

3个整数数组进行整体排序,根据输入的三个数组的元素,输出排序后的结果(从大到小)

输入格式: 第1个数组的长度

第1个数组的各个元素

第2个数组的长度

第2个数组的各个元素

第3个数组的长度

第3个数组的各个元素

输出格式: 所有数组的整体排序

输入样例: 在这里给出一组输入。例如:

3 79 80 61 3 88 66 77 2 23 90

输出样例: 在这里给出相应的输出。例如:

90 88 80 79 77 66 61 23

将三个数组复制合并到同一个数组中,再对合并后的数组进行排序

ans:

import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String []args) { Scanner s=new Scanner(System.in); int a=s.nextInt(); int i; int []arr1=new int [a]; for(i=0;i arr2[i]=s.nextInt(); } int c=s.nextInt(); int []arr3=new int [c]; for(i=0;i System.out.print(" " + ee[i]); } s.close(); } } 7-2 两队PK (20分)

A、B两队进行比赛,每队各有多名队员及其分数(分数不重复),使用A、B队所有队员得分的TOP 3来判断两队输赢,在TOP 3中拥有更多人数的队获胜。写程序实现该过程。

输入格式: A队人数

A队每人得分

B队人数

B队每人得分

输出格式: 前三甲分数

赢的队

输入样例:

5 22 33 44 55 11 4 12 32 42 52

输出样例:

55 52 44 A import java.util.Arrays; import java.util.Scanner; public class test3 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int numberA = in.nextInt(); int mid = 0; int aScores[] = new int[numberA]; for (int i = 0; i bScores[i] = in.nextInt(); } int cScores[] = new int[numberA+numberB]; System.arraycopy(aScores,0,cScores,0,numberA); System.arraycopy(bScores,0,cScores,numberA,numberB); Arrays.sort(cScores); int aBig = 0;//前三名中A队的人数 int flag = 1; for (int i = numberA + numberB - 1; i >= numberA + numberB - 3; i--) { for (int j = numberA - 1; j >= 0; j--) { if (aScores[j] == cScores[i]) { aBig++; } } if (aBig > 1) { flag = 0;//判定A队赢 } } //System.out.println(aBig); for (int i = numberA + numberB - 1; i >= numberA + numberB - 3; i--) { if (i == numberA + numberB - 1) { System.out.print(cScores[i]); } else { System.out.print(" " + cScores[i]); } } System.out.println();//换行 if (flag == 0) { System.out.println("A"); } else { System.out.println("B"); } } } 7-3 公司季度销售额以及年销售额统计 (20分)

年底了,某公司要做销售统计,请输入各月份的销售额(单位:万元),请分别统计每季度的以及全年度的公司销售总额。 要求: 1.用一个四行3列数组记录销售额 2.在Main类中写一个方法统计并输出季度以及全年度的销售总额,并输出。方法声明定义为: public static void showTotal(int [][]sale) 3.在main方法中顶一个二维数组并通过键盘输入各月份的销售总额,然后调用showTotal方法,输出统计结果。

输入格式: 输入在一行中给出12个月份的销售额,中间用空格隔开。

输出格式: 每一行分别输出各季度的销售额总和,最后一行输出年度销售额。

输入样例: 在这里给出一组输入。例如:

22 33 44 33 44 66 77 45 64 43 34 23 45

输出样例: 在这里给出相应的输出。例如:

1季度的销售额为:99 2季度的销售额为:143 3季度的销售额为:186 4季度的销售额为:100 全年销售额为:528

ans;

import java.util.*; public class Main { public static void main(String []args) { Scanner scanner=new Scanner(System.in); int [][]a=new int [4][3]; for(int i=0;i a[i][j]=scanner.nextInt(); } } showTotal(a); scanner.close(); } public static void showTotal(int [][]sale) { int i,j,a1=0,a2=0,a3=0,a4=0; for(i=0;i public static void main(String[] args) { Scanner s = new Scanner(System.in); LinkedList list = new LinkedList(); int n = s.nextInt(); int []a=new int [n]; for(int i=0;i int index = s.nextInt(); list.remove(index-1); s.close(); for(int i=0;i System.out.print(" "); } } } }

数组:

//完成数组元素的移动功能:假设数组有n个元素,输入一个数x, // 把数组的第x个位置的元素删除了,后面的元素依次前进一个位置。 // 重复若干次这样的删除,得到最后的结果。 //第一行包括一个整数n(1 Scanner s = new Scanner(System.in); int n = s.nextInt(); int []a=new int [n]; for(int i=0;i int x = s.nextInt(); for(int j=x-1;j System.out.print(" "+a[i]); } } } 7-5 369寝室 (20分)

369寝室是比较特殊的寝室,因为别的寝室都住了四个人,而369寝室只有三个人。也因为这个原因,寝室里的三位同学感情特别好。但是,毕业在即,三位小伙伴马上要分别。为了在未来的某个日子可以见面,三位小伙伴有了一个约定,假设在未来的某一年,三位小伙伴的年龄的末尾正好出现3、6、9三个数,那么他们会再次相聚。

现在问题来了,假设今年三位小伙伴的年龄分别是x,y,z,那么,他们三人最早几年后可以相聚呢?

输入格式: 输入数据包括三个整数x,y,z,分别表示三位伙伴的年龄。

输出格式: 如果小伙伴最早在n年后可以相见(不包括当前这一年),那么请输出这个n;如果100年内都不存在这样的情况,输出:so sad!

输入样例:

25 22 28

输出样例:

1 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean sad; boolean situation1 ,situation2 ,situation3 ; while (scanner.hasNextInt()) { sad = false; int x = scanner.nextInt(); int y = scanner.nextInt(); int z = scanner.nextInt(); for(int i = 1; i sad = true; } if ((x + i) % 10 == 3 || (y + i) % 10 == 3 || (z + i) % 10 == 3) { situation1 = true; } if ((x + i) % 10 == 6 || (y + i) % 10 == 6 || (z + i) % 10 == 6) { situation2 = true; } if ((x + i) % 10 == 9 || (y + i) % 10 == 9 || (z + i) % 10 == 9) { situation3 = true; } if (situation1&&situation2&&situation3) { System.out.println(i); break; } } if(sad) { System.out.println("so sad!"); } } } } 7-1 N个数的排序与查 (20分)

从键盘输入N个整数,并输出指定的某个整数在这N个整数中的按照由小到大的顺序排列的位次(最小的位次是1,最大的位次是N,指定的整数如果不在这N个数中,则其位次是-1)

输入格式: 整数个数,指定的整数值

输出格式: 指定的整数的位次

输入样例: 在这里给出一组输入。例如:

3 12 4 7 4

输出样例: 在这里给出相应的输出。例如:

1 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner SC=new Scanner(System.in); int N=SC.nextInt(); int []a=new int [N]; int i; for(i=0;i if(a[j]==c) { System.out.print(j+1); flag=1; break; } j++; } if(flag==0) System.out.print("-1"); SC.close(); } } 7-2 整数数组比较 (20分)

给定两个整型数组A和B,将A的元素复制到B中,使得两个数组完全相同。再将B数组从小到大排列,将两数组的同一位置上对应的元素进行比较,统计出A中大于B的元素个数,等于B中元素的个数,小于B中的元素的个数。 提示:可用Arrays.sort排序

输入格式: 数组A的个数 数组A元素

输出格式: A大于B的个数 A等于B的个数 A小于B的个数

输入样例: 在这里给出一组输入。例如:

10 23 1 32 87 65 12 21 9 76 45

输出样例: 在这里给出相应的输出。例如:

4 1 5

ans:

import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String []args) { Scanner s=new Scanner(System.in); int n=s.nextInt(); int[] a=new int[n]; int[] b=new int[n]; int eq=0,gt=0,lt=0; //数据输入 int i; for(i=0;i if(a[i]>b[i]) { gt++; } else if(a[i] public static void main(String[] args) { Scanner s=new Scanner(System.in); int n=s.nextInt(); int []arr=new int[n]; int []newarr = new int[n]; int i; for(i=0;i // System.out.println(arr[j]); // } newarr =deRepetition(arr); // System.out.println( Arrays.toString(newarr)); if(newarr.length>=3) System.out.println(newarr[2]); else System.out.println(-1); s.close(); } //去重 public static int[] deRepetition(int[] arr){ int[] newArr = null; for (int i = 0; i if (arr[i] == arr[j]) { flag = false; break; } } if (flag) { if (newArr == null) { newArr = new int[1]; newArr[0] = arr[i]; continue; } newArr = Arrays.copyOf(newArr,newArr.length+1); newArr[newArr.length-1] = arr[i]; } } return newArr; } } 7-5 集合求交 (20分)

从键盘录入1行包含6个整数(整数可以重复)的字符串,前3个整数和后3个整数分别构成2个集合。编写程序,输出这两个集合的交集中的元素个数。

输入格式: 键盘录入的1行包含6个整数(整数可以重复)的字符串

输出格式: 前3个整数和后3个整数构成的2个集合的交集中的元素个数

输入样例: 在这里给出一组输入。例如:

12 14 22 12 16 22

输出样例: 在这里给出相应的输出。例如:

2 //从键盘录入1行包含6个整数(整数可以重复)的字符串,前3个整数和后3个整数分别构成2个集合。编写程序,输出这两个集合的交集中的元素个数。 import java.util.Arrays; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); String s = cin.nextLine(); String[] t = s.split(" "); int[] a = new int[t.length]; int i; for (i = 0; i arr1[i] = a[i]; } for (i = 0; i for (j = 0; j int[] newArr = null; for (int i = 0; i if (arr[i] == arr[j]) { flag = false; break; } } if (flag) { if (newArr == null) { newArr = new int[1]; newArr[0] = arr[i]; continue; } newArr = Arrays.copyOf(newArr,newArr.length+1); newArr[newArr.length-1] = arr[i]; } } return newArr; } } 7-3 解析二维数组 (20分)

读入一个字符串,该字符串表示一个整型二维数组d,数组中的元素通过解析字符串参数获得。例如,字符串参数:“1,2;3,4,5;6,7,8”,对应的数组为: d[0,0] = 1 d[0,1] = 2 d[1,0] = 3 d[1,1] = 4 d[1,2] = 5 d[2,0] = 6 d[2,1] = 7 d[2,2] = 8 打印这个数组各元素的内容

输入格式: 字符串

输出格式: 二维数组各元素

输入样例: 在这里给出一组输入。例如:

1,2;3,4,5;6,7,8

输出样例: 在这里给出相应的输出。例如:

d[0,0] = 1 d[0,1] = 2 d[1,0] = 3 d[1,1] = 4 d[1,2] = 5 d[2,0] = 6 d[2,1] = 7 d[2,2] = 8 import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner s=new Scanner(System.in); String a=s.nextLine(); String [] a1=a.split(";");//将a以;分为几个数组,存入a1 int [][] arr=new int [a1.length][];//分配第一维空间 int i,j; for(i=0;i String[] a2=a1[i].split(","); for(j=0;j for(j=0;j public static void main(String[] args) { Scanner cin=new Scanner(System.in); int r=cin.nextInt();//输入行 int c=cin.nextInt();//输入列 Matrix matrix=new Matrix(r,c); System.out.println("row:"+matrix.height()+" "+"column:"+matrix.width()); for (int i = 0; i int v=cin.nextInt(); matrix.set(i,j,v); } } int r1=cin.nextInt(); int c1=cin.nextInt(); int v1=cin.nextInt(); int nr1=r1-1;int nc1=c1-1; matrix.set(nr1,nc1,v1); System.out.println("after set value:"); matrix.print(); int r2=cin.nextInt(); int c2=cin.nextInt(); int va=matrix.get(r2,c2); System.out.println("value on ("+r2+","+c2+"):"+va); //输入相加矩阵 int r3=cin.nextInt();//输入行 int c3=cin.nextInt();//输入列 Matrix matrix1=new Matrix(r3,c3); for (int i = 0; i int v3=cin.nextInt(); matrix1.set(i,j,v3); } } Matrix matrix2= matrix.add(matrix1); System.out.println("after add:"); matrix2.print(); //输入相乘矩阵 int r4=cin.nextInt();//输入行 int c4=cin.nextInt();//输入列 Matrix matrix3=new Matrix(r4,c4); for (int i = 0; i int v4=cin.nextInt(); matrix3.set(i,j,v4); } } Matrix matrix4= matrix.multiply(matrix3); System.out.println("after multiply:"); matrix4.print(); System.out.println("after transpose:"); Matrix matrix5=matrix.transpose(); matrix5.print(); cin.close(); } } class Matrix { private final int R=3; private final int C=3; private int row;//行 private int col;//列 //private int value;//值 private int[][] matrix; public Matrix()//构造函数 { matrix=new int[row][col]; row=R; col=C; for (int i = 0; i matrix[i][j]=0; } } } public Matrix(int row,int col)//构造函数 { matrix=new int[row][col]; this.col=col; this.row=row; for (int i = 0; i matrix[i][j]=0; } } } public boolean set(int row,int col,int value) { if(row>this.row||col>this.col) return false; else { matrix[row][col]=value; return true; } } public int get(int row,int col) { return matrix[row-1][col-1]; //java.lang.ArrayIndexOutOfBoundsException数组越界 } public int width() { return col; } public int height() { return row; } public Matrix add(Matrix b) { if (b.row == row && b.col == col) { Matrix m = new Matrix(row, col); for (int i = 0; i m.matrix[i][j] = matrix[i][j] + b.matrix[i][j]; } } return m; } else { System.out.println("ERRPR!"); return null; } } public Matrix multiply(Matrix b){ if(b.row!=col) return null; else { Matrix c=new Matrix(row,b.col); for (int i = 0; i for (int k = 0; k Matrix d=new Matrix(row,col); for (int i = 0; i d.matrix[i][j]=matrix[j][i]; } } return d; } public void print() { for (int i = 0; i if(j==0) System.out.print(matrix[i][j]); else System.out.print(" "+matrix[i][j]); } System.out.println(); } } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3