「java二维数组编程题」二维数组 JAVA
今天给各位分享java二维数组编程题的知识,其中也会对二维数组 JAVA进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java二维数组编程问题
- 2、Java编程,创建一个二维数组,随机产生 0∼100之间的值,求出最大值及对应下标
- 3、Java二维数组练习题
- 4、java高手:java定义二维数组问题
- 5、java题目,有关二维数组的,求大神解答
- 6、java小程序题,输出一个二维数组
java二维数组编程问题
import java.util.Scanner;public class Array2D {
private int[][] arr;
private Scanner sc = new Scanner(System.in);
public Array2D(int n) {
arr = new int[n][n];
}
public void setData() {
for(int i=0;iarr.length;i++) {
for(int j=0;jarr[i].length;j++) {
System.out.print("请输入第"+(i+1)+"行第"+(j+1)+"列的值:");
arr[i][j] = sc.nextInt();
}
}
}
public int[] getRowMax() {
int[] arr_rmax = new int[arr.length];
for(int i=0;iarr.length;i++) {
int temp = 0;
for(int j=0;jarr[i].length-1;j++) {
for(int k=j+1;karr[i].length;k++) {
temp = arr[i][j];
if(arr[i][j]arr[i][k]) temp = arr[i][k];
}
}
arr_rmax[i] = temp;
}
return arr_rmax;
}
public int[] getColMin() {
int[] arr_cmin = new int[arr[0].length];
for(int i=0;iarr[0].length;i++) {
int temp = 0;
for(int j=0;jarr.length-1;j++) {
for(int k=j+1;karr.length;k++) {
temp = arr[j][i];
if(arr[j][i]arr[k][i]) temp = arr[k][i];
}
}
arr_cmin[i] = temp;
}
return arr_cmin;
}
public int[][] getDLine() {
int[] arr_DL1 = new int[arr.length];
int[] arr_DL2 = new int[arr.length];
for(int i=0;iarr.length;i++) {
arr_DL1[i] = arr[i][i];
arr_DL2[i] = arr[i][arr.length-i-1];
}
int[][] arr_DL = {arr_DL1,arr_DL2};
return arr_DL;
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入方阵的行列值:");
int n = sc.nextInt();
Array2D ar = new Array2D(n);
ar.setData();
for(int i=0;in;i++)
System.out.println("该方阵第"+(i+1)+"行的最大值为:"+ar.getRowMax()[i]);
for(int j=0;jn;j++)
System.out.println("该方阵第"+(j+1)+"列的最小值为:"+ar.getColMin()[j]);
System.out.println("主对角线的元素为:");
for(int k=0;kn;k++) {
System.out.print(ar.getDLine()[0][k]+" ");
if(k==n-1) System.out.println("");
}
System.out.println("次对角线的元素为:");
for(int l=0;ln;l++) {
System.out.print(ar.getDLine()[1][l]+" ");
if(l==n-1) System.out.println("");
}
}
}
Java编程,创建一个二维数组,随机产生 0∼100之间的值,求出最大值及对应下标
需求:Java编程,创建一个二维数组,随机产生 0~100之间的值,求出最大值及对应下标。
分析步骤:
A:创建一个二维数组
int[][] twoArr = new int[8][8];
B: 随机产生0~100之间的值
Random random=new Random();
random.nextInt(100);
C:将随机产生的值赋值给数组元素
运用for循环
D:求出最大值
假设twoArr[0][0]为最大值,遍历数组,两两比较,把值大的赋值给max。同时标记x,y
E:输出最大值,输出x,y(遍历的两个局部变量)值
import java.util.Random;
class TwoArr{
public static void main(String[] args){
int n = 8;//这里也可以改成键盘录入的形式
int[][] twoArr = new int[n][n];//定义二维数组
//将随机产生的值赋值给数组元素
for(int x = 0;xtwoArr.length;x++){
for(int y = 0;ytwoArr[x].length;y++){
Random random=new Random();
twoArr[x][y] = random.nextInt(100);
}
}
//求最大值和索引
int max = twoArr[0][0];
int index1 = 0;
int index2 = 0;
for(int x = 1;xtwoArr.length;x++){
for(int y = 0;ytwoArr[x].length;y++){
if(twoArr[x][y]max){
max = twoArr[x][y];
index1 = x;
index2 = y;
}
}
}
//输出
System.out.println("最大值是:"+max+",其下标为:["+index1+"]"+"["+index2+"]");
}
}
Java二维数组练习题
import java.util.Scanner;
public class ScoreDemo {
static Scanner input = new Scanner(System.in);//扫描器.用于读取控制台的输入
static int[][] cj = new int[10][2];//二维数组,保存学号和成绩
public static void main(String[] args) {
//randomInfo(); //用于测试的时候 直接随即成绩
inPutInfo();//录入学号和成绩
printUnderAvg();//输出平均分以下的学号和成绩
// 选择菜单
while (true) {
System.out.println("输入1:按学号查询,输入2:按成绩查询,3:打印全部信息,4:退出查询");
int choose = Integer.parseInt(input.nextLine());
if (choose == 1) {
searchByNum();
} else if (choose == 2) {
searchByScore();
} else if (choose == 3) {
printAll();
} else if (choose == 4) {
System.out.println("退出!");
System.exit(0);
} else {
System.out.println("错误的输入");
continue;
}
}
}
private static void printUnderAvg() {//输出平均分以下的学号和成绩
int sum = 0;// 计算总分
for (int i = 0; i cj.length; i++) {
sum += cj[i][1];
}
double pj = sum * 1.0 / cj.length;// 计算平均分
System.out.println("平均分"+pj);
// 输出低于平均分的学号和成绩
System.out.println("-------低于平均分的信息-------");
for (int i = 0; i cj.length; i++) {
if (cj[i][1] pj) {
System.out.println("学号:" + cj[i][0] + "\t成绩:" + cj[i][1]);
}
}
System.out.println("-----------END-----------");
}
private static void randomInfo() {//随即产生成绩
for (int i = 0; i cj.length; i++) {
cj[i][0] = (i + 1);// 学号
cj[i][1] = (int) (Math.random() * 51 + 50);// 随机的成绩 50~100分之间
// cj[i][1] = (int) (Math.random() *101);//随即 0~100分的成绩
}
}
private static void inPutInfo() {//录入学号和成绩
for (int i = 0; i cj.length; i++) {
System.out.println("请输入第" + (i + 1) + "个学生的信息");
System.out.print("学号:");
cj[i][0] = Integer.parseInt(input.nextLine());
System.out.print("成绩:");
cj[i][1] = Integer.parseInt(input.nextLine());
}
}
private static void printAll() {//打印全部信息
System.out.println("-----成绩信息------");
for (int i = 0; i cj.length; i++) {
System.out.println("学号:" + cj[i][0] + "\t成绩:" + cj[i][1]);
}
System.out.println("-----信息END------");
}
private static void searchByScore() {//按成绩查询
System.out.print("请输入成绩:");
int score = Integer.parseInt(input.nextLine());
boolean flag = true;
for (int i = 0; i cj.length; i++) {
if (cj[i][1] == score) {
flag = false;
System.out.println("学号:" + cj[i][0] + "\t成绩:" + cj[i][1]);
}
}
if (flag) {
System.out.println("查无此成绩");
}
}
private static void searchByNum() {//按学号查询
System.out.print("请输入学号:");
int num = Integer.parseInt(input.nextLine());
boolean flag = true;
for (int i = 0; i cj.length; i++) {
if (cj[i][0] == num) {
flag = false;
System.out.println("学号:" + cj[i][0] + "\t成绩:" + cj[i][1]);
}
}
if (flag) {
System.out.println("查无此学号");
}
}
}
运行测试
平均分70.6
-------低于平均分的信息-------
学号:1 成绩:55
学号:2 成绩:51
学号:5 成绩:68
学号:8 成绩:60
学号:9 成绩:51
-----------END-----------
输入1:按学号查询,输入2:按成绩查询,3:打印全部信息,4:退出查询
1
请输入学号:3
学号:3 成绩:87
输入1:按学号查询,输入2:按成绩查询,3:打印全部信息,4:退出查询
2
请输入成绩:60
学号:8 成绩:60
输入1:按学号查询,输入2:按成绩查询,3:打印全部信息,4:退出查询
4
java高手:java定义二维数组问题
int a[][] = new int[3][2]; 表示定义一个三行二列的二维数组,但是a[0] = {1,6}; 是对一维数组进行赋值,而a是二维数组无法使用一维数组的赋值方法,所以程序会报错。
该代码的正确方法应该是:
int a[][] = new int[3][2];
a[0][0]=1;
a[0][1]=6;
扩展资料
java定义二维数组的方法:
1、动态初始化
数据类型 数组名 [ ][ ] = new 数据类型[m][n]
数据类型 [ ][ ] 数组名 = new 数据类型[m][n]
数据类型 [ ] 数组名 [ ] = new 数据类型[m][n]
举例:int [ ][ ] arr=new int [5][3]; 也可以理解为“5行3例”
2、 静态初始化
数据类型 [ ][ ] 数组名 = {{元素1,元素2....},{元素1,元素2....},{元素1,元素2....}.....};
举例:int [ ][ ] arr={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},}
参考资料来源:百度百科——二维数组
java题目,有关二维数组的,求大神解答
public class Test09 {
public static void main(String[] args) {
int[][] stu;//声明二维数组
Scanner input = new Scanner(System.in);
System.out.println("请输入班级人数:");
int num = input.nextInt();//输入班级人数
stu = new int[num][2];
for (int i = 0; i num; i++) {//输入每位同学的学号和成绩,都用整型
System.out.println("请输入第" + (i + 1) + "个学生的学号:");
stu[i][0] = input.nextInt();
System.out.println("请输入第" + (i + 1) + "个学生的成绩:");
stu[i][1] = input.nextInt();
}
for (int i = stu.length - 1; i = 0; i--) {//用选择排序算法对数组按成绩进行排序
int indexlow = i;
for (int j = stu.length - 1; j = i + 1; j--) {
if (stu[j][1] stu[indexlow][1]) {
indexlow = j;
}
}
int temp0 = stu[i][0];
stu[i][0] = stu[indexlow][0];
stu[indexlow][0] = temp0;
int temp1 = stu[i][1];
stu[i][1] = stu[indexlow][1];
stu[indexlow][1] = temp1;
}
System.out.println("按成绩进行排序:");
for (int i = 0; i stu.length; i++) {//输出排序后的全班同学的学号和成绩
System.out.print("学号为");
System.out.print(stu[i][0]);
System.out.print("的同学");
System.out.print("成绩为:");
System.out.print(stu[i][1]);
System.out.println();
}
}
}
java小程序题,输出一个二维数组
public class Test { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int row=5; //这里控制输出的行列 请保证行列相等,这里就不做判断了
int[][] a=new int[row][row];
a[0][0]=1;
int n=2,zero=0,change=1;
int value=2;
for(int i=1;irow;i++){
for(int j=0;j(2*n-1);j++){
if(i%2!=0){
if(j(2*n-2)/2){
a[zero++][change]=value++;
continue;
}
if(j==(2*n-2)/2){
a[j][j]=value++;
}
if(j(2*n-2)/2){
a[change][--zero]=value++;
}
}else{
if(j(2*n-2)/2){
a[change][zero++]=value++;
continue;
}
if(j==(2*n-2)/2){
a[j][j]=value++;
}
if(j(2*n-2)/2){
a[--zero][change]=value++;
}
}
}
n++;
change++;
zero=0;
}
String out="";
for(int i=0;irow;i++){
for(int j=0;jrow;j++){
out=""+a[i][j];
if(out.length()==1)
out="0"+out;
System.out.print(out+" ");
}
System.out.println();
}
}}
运行测试通过
java二维数组编程题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于二维数组 JAVA、java二维数组编程题的信息别忘了在本站进行查找喔。
发布于:2022-12-17,除非注明,否则均为
原创文章,转载请注明出处。