段数を入力すると以下のように階段状に数字を表示する処理を作成せよ。
それぞれの数字は0~99のランダムとする。
作成時には2次元配列を用い。配列作成部分と出力部分をわけて記述すること。
[実行例]
何段>5 88 45 57 79 42 82 77 64 59 25 52 13 34 11 85
[解答例]
public static void main(String[] args) {
System.out.print("何段>");
int row=new Scanner(System.in).nextInt();
//配列作成パート
int[][] data=new int[row][];
for(int i=0;i<data.length;i++){
data[i]=new int[i+1];
for(int j=0;j<data[i].length;j++){
data[i][j]=new Random().nextInt(100);
}
}
//配列出力パート
for(int i=0;i<data.length;i++){
for(int j=0;j<data[i].length;j++){
System.out.printf("%3d",data[i][j]);
}
System.out.println();
}
}
}
以下の処理を2次元配列を用いて実現せよ。数字はランダムに発生させ0~99の範囲とする。
数字> 3 行>5 列>3 5行3列の表をランダムな3の倍数で埋め尽くしました (0<=n<=99) 42 60 0 57 42 33 21 84 84 75 72 66 3 60 60
import java.util.*;
public class Main{
public static void main(String[] args) {
System.out.print("数字>");
int num=new Scanner(System.in).nextInt();
System.out.print("行>");
int row=new Scanner(System.in).nextInt();
System.out.print("列>");
int col=new Scanner(System.in).nextInt();
System.out.printf("%d行%d列の表をランダムな%dの倍数で埋め尽くしました%n", row,col,num);
System.out.println("(0<=n<=99)");
int[][] data=new int[row][col];
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
data[i][j]=new Random().nextInt(100%num==0?100/num:100/num+1)*num;
//data[i][j]=new Random().nextInt((int)Math.ceil(100d/num))*num;
}
}
//出力
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
System.out.printf("%3d",data[i][j]);
}
System.out.println();
}
}
}
コメント