用java随机生成一个6行5列的二维数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java随机生成一个6行5列的二维数组相关的知识,希望对你有一定的参考价值。

思路:
1、首先声明一个6行5列的数组
2、先循环行,再循环列,再赋值为随机数(使用 Random 类)
3、再遍历

代码如下:
public static void main(String[] args) 
   //声明一个6行5列的数组
       int[][] array=new int[6][5];
       for(int i=0,j=array.length;i<j;i++)
        for(int h=0,k=array[i].length;h<k;h++)
           array[i][h]=new Random().nextInt(100); //赋值:100以内的随机数
        
       
       
       //遍历
       for(int i=0,j=array.length;i<j;i++)
        System.out.println();
        for(int h=0,k=array[i].length;h<k;h++)
        System.out.print(array[i][h]+"\\t");
        
       
  

参考技术A     public static void main(String[] args) 
        int a[][] = new int[6][5];
        for (int i = 0; i < a.length; i++) 
            for (int j = 0; j < a[i].length; j++) 
                a[i][j] = new Random().nextInt(10);
            
        
        for (int i = 0; i < a.length; i++) 
            for (int j = 0; j < a[i].length; j++) 
                System.out.print(a[i][j] + "\\t");
            
            System.out.println();
        
    

参考技术B public void test09() 
int row = 6;
int column = 5;
int[][] array = new int[row][column];
Random r = new Random();
for (int i=0; i<row; i++) 
for (int j=0; j<column; j++) 
array[i][j] = r.nextInt(row * column);


二维数组---矩阵相关问题

矩阵问题

做到一些相关矩阵的题目,在这里总结一下呢

矩阵乘法

给定一个 m 行、n列的矩阵 A 和一个 n 行、m 列的矩阵 B。你需要用矩阵 A 与矩阵 B 相乘,并且将 m行 m 列的乘积结果输出
在这里插入图片描述

#include <stdio.h>
#include<string.h>

int main() {
int matrix_a[10][10];
int matrix_b[10][10];
int m,n;
int i,j,k;scanf("%d %d", &m, &n);//输入行和列
for (i = 0; i < m; i++) {   //输入a矩阵
    for (j = 0; j < n; j++) {
        scanf("%d", &matrix_a[i][j]);
    }
}

for (i = 0; i < n; i++) {
    for (j = 0; j < m; j++) {//输入b矩阵
        scanf("%d", &matrix_b[i][j]);
    }
}  

for (i = 0; i < m; i++) {//输出矩阵的行循环
    for (j = 0; j < m; j++) {//输出矩阵的列循环
        for (k = 0; k < n; k++) {//每个元素的循环加
            value[i][j] += matrix_a[i][k] * matrix_b[k][j]; 
        }
        j == 0 || printf(" ");//控制空格输出
        printf("%d",value[i][j]);
    }
    printf("\\n");//记得换行
}
return 0;
}

翻转矩阵

给定一个 m行、n 列的矩阵,你需要根据要求将它水平翻转或竖直翻转。
在这里插入图片描述`

#include<stdio.h>
int main() {
int m, n;
int matrix[105][105];
int i, j, k, t;
scanf("%d%d", &m, &n);
for (i = 0; i < m; i++) {
    for (j = 0; j < n; j++) {
        scanf("%d", &matrix[i][j]);
    }
}
scanf("%d", &k);
if (k == 1) {    //**k==1时表示水平翻转**
    for (i = 0; i < m; i++) {
        for (j = 0; j < n / 2; j++) { //列数只循环一半即可
            t = matrix[i][j];         //矩阵值的交换
            matrix[i][j] = matrix[i][n - 1 - j];
            matrix[i][n - 1- j] = t;
        }
    }
    for (i = 0; i < m; i++) {
        for (j = 0; j < n; j++) {
            j == 0 || printf(" ");   //为了输出空格
            printf("%d", matrix[i][j]);
        }
        printf("\\n");
    }
}if (k == 0) {      //**k== 0时表示垂直翻转**
    for (i = 0; i < m / 2; i++) {  //行数只循环一半即可
        for (j = 0; j < n; j++) {
            t = matrix[i][j];           //矩阵值的交换
            matrix[i][j] = matrix[m - 1 - i][j];
            matrix[m - 1 - i][j] = t;
        }
    }
    
    for (i = 0; i < m; i++) {     //矩阵输出
        for (j = 0; j < n; j++ ){
            j == 0 || printf(" ");
            printf("%d", matrix[i][j]);
        }
        printf("\\n");   //记得换行
    }
}
return 0;
}

`

旋转矩阵

对于一个给定的 3×3 矩阵,请将其顺时针旋转 90度后输出
在这里插入图片描述

#include <stdio.h>int main() {
int matrix[3][3];
int i;
int j;
int result[3][3];
for (i = 0; i < 3; i++){
    for (j = 0; j < 3; j++){
        scanf("%d ", &matrix[i][j]);
    }
}

for (i = 0; i < 3; i++){
    for (j = 0; j < 3; j++){
        result[j][3 - i - 1] = matrix[i][j];  //注意这里的转换公式即可
    }
}for (i = 0; i < 3; i++){
    for (j = 0; j < 3; j++){
        j == 0 || printf(" ");
        printf("%d", result[i][j]);
        //if (j != 2) printf(" ");
    }printf("\\n");
}

return 0;

}`

螺旋矩阵

给定一个 m 行、n 列的矩阵,请按照顺时针螺旋的顺序输出矩阵中所有的元素(从[0][0]位置开始,具体请参见下图)。
在这里插入图片描述在这里插入图片描述

#include <stdio.h>
void space(int, int);
int main() {
    int matrix[101][101];
    int m;
    int n;
    int i, j;
    // 输入m*n的矩阵
    scanf("%d%d", &m, &n);
    for (i = 0; i < m; i++) {
        for (j = 0; j < n; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }
    //定义上下左右边界,每次边上的数后,更新周围的值
    int up = 0, left = 0, down = m-1, right = n-1;
    int k, num = 0;
    while (up <= down && left <= right) {
        // 向右输出
        for (k = left; k <= right; k++) {
            printf("%d", matrix[up][k]);
            num++;
            space(num, m*n);
        }
        up++;
        if (num == m*n)  //如果全部数值已经输出完毕,退出while循环
            break;
        // 向下输出
        for (k = up; k <= down; k++) {
            printf("%d", matrix[k][right]);
            num++;
            space(num, m*n);
        }
        right--;
        if (num == m*n)  //如果全部数值已经输出完毕,退出while循环
            break;
        // 向左输出
        for (k = right ; k >= left; k--) {
            printf("%d", matrix[down][k]);
            num++;
            space(num, m*n);
        }
        down--;
        if (num == m*n)  //如果全部数值已经输出完毕,退出while循环
            break;
        // 向上输出
        for (k = down; k >= up; k--) {
            printf("%d", matrix[k][left]);
            num++;
            space(num, m*n);
        }
        left++;
        if (num == m*n)  //如果全部数值已经输出完毕,退出while循环
            break;
    }
    return 0;
}
//判断每次输出数字后是否要输出空格
void space(num, all) {
    if (num < all)
        printf(" ");
}

以上问题仅供参考,有更好的方法欢迎交流

以上是关于用java随机生成一个6行5列的二维数组的主要内容,如果未能解决你的问题,请参考以下文章

c++输入一个5行5列的二维数组,求最大值和最小值其对应行列的位置。。

用指针实现二维数组行列求和

二维数组怎么赋值

java 编写一C程序,随机生成20个1 ~ 100的随机整数......

JAVA从数组中选取N个数,使其和为M实现算法?

如何将一个数组分成N个等分的数组