用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列的二维数组,求最大值和最小值其对应行列的位置。。