多次元配列を練習しよう。

Q1
2次元配列を作成し、九九の表を出力せよ。
System.out.printf()と書式文字列%3dを使ってフォーマットすること。

[実行結果]

  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81
public class Jn27 {
	    public static void main(String[] args){
        int[][] nums=new int[9][9];
	    	for(int i=0;i<9;i++){
	    		for(int j=0;j<9;j++){
	    			nums[i][j]=(i+1)*(j+1);
	    		}
	    	}
        /*出力*/
        for(int i=0;i<nums.length;i++){
          for(int j=0;j<nums[i].length;j++){
            System.out.printf("%3d",nums[i][j]);
          }
          System.out.println();
        }
	    }
}

Q2
行数と列数を入力させ、その表を0〜99の乱数で埋め尽くす二次元配列を作成せよ。
出力の際はSystem.out.printf()を使ってフォーマットすること。

[実行結果]

何行?>3
何列?>5
 85 17 40 20  4
 95 90 37 41 70
 44 84 99 25 49
public class Q2 {
	    public static void main(String[] args){
	    	System.out.print("何行?>");
	    	int rows=new java.util.Scanner(System.in).nextInt();
	    	System.out.print("何列?>");
	    	int cols=new java.util.Scanner(System.in).nextInt();
	    	int[][] matrix=new int[rows][cols];
	    	for(int i=0;i<rows;i++){
	    		for(int j=0;j<cols;j++){
	    			matrix[i][j]=new java.util.Random().nextInt(100);
	    		}
	    	}
        /*出力*/  	
	    	for(int i=0;i<rows;i++){
	    		for(int j=0;j<cols;j++){
	    			System.out.printf("%3d",matrix[i][j]);
	    		}
	    		System.out.println();
	    	}
	    }
}

Q3
クラス数、クラスの人数、それぞれの点数を入力させ、表を出力する。
[実行結果]

クラスの数>2
1組のクラスの人数>3
1組1人目の点数>20
1組2人目の点数>60
1組3人目の点数>30
2組のクラスの人数>4
2組1人目の点数>90
2組2人目の点数>70
2組3人目の点数>30
2組4人目の点数>45
--表出力--
1組 20 60 30
2組 90 70 30 45
public class Q3 {
	    public static void main(String[] args){
	    	System.out.print("クラスの数>");
	    	int cNum=new java.util.Scanner(System.in).nextInt();
	    	int[][] data=new int[cNum][];
	    	for(int i=0;i<data.length;i++){
	    		System.out.printf("%d組のクラスの人数>",i+1);
	    		int sNum=new java.util.Scanner(System.in).nextInt();
	    		data[i]=new int[sNum];
	    		for(int j=0;j<sNum;j++){
	    			System.out.printf("%d組%d人目の点数>",i+1,j+1);
	    			data[i][j]=new java.util.Scanner(System.in).nextInt();
	    		}
	    	}
	    	System.out.println("--表出力--");
	    	for(int i=0;i<data.length;i++){
	    		System.out.printf("%d組",i+1);
	    		for(int j=0;j<data[i].length;j++){
	    			System.out.printf("%3d",data[i][j]);
	    		}
	    		System.out.println();
	    	}
	    }
}