多次元配列を練習しよう。
Q1
2次元配列を作成し、九九の表を出力せよ。
System.out.printf()と書式文字列%3dを使ってフォーマットすること。
[実行結果]
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 |
02 | public static void main(String[] args){ |
03 | int [][] nums= new int [ 9 ][ 9 ]; |
06 | nums[i][j]=(i+ 1 )*(j+ 1 ); |
10 | for ( int i= 0 ;i<nums.length;i++){ |
11 | for ( int j= 0 ;j<nums[i].length;j++){ |
12 | System.out.printf( "%3d" ,nums[i][j]); |
Q2
行数と列数を入力させ、その表を0〜99の乱数で埋め尽くす二次元配列を作成せよ。
出力の際はSystem.out.printf()を使ってフォーマットすること。
[実行結果]
02 | public static void main(String[] args){ |
03 | System.out.print( "何行?>" ); |
04 | int rows= new java.util.Scanner(System.in).nextInt(); |
05 | System.out.print( "何列?>" ); |
06 | int cols= new java.util.Scanner(System.in).nextInt(); |
07 | int [][] matrix= new int [rows][cols]; |
08 | for ( int i= 0 ;i<rows;i++){ |
09 | for ( int j= 0 ;j<cols;j++){ |
10 | matrix[i][j]= new java.util.Random().nextInt( 100 ); |
14 | for ( int i= 0 ;i<rows;i++){ |
15 | for ( int j= 0 ;j<cols;j++){ |
16 | System.out.printf( "%3d" ,matrix[i][j]); |
Q3
クラス数、クラスの人数、それぞれの点数を入力させ、表を出力する。
[実行結果]
02 | public static void main(String[] args){ |
03 | System.out.print( "クラスの数>" ); |
04 | int cNum= new java.util.Scanner(System.in).nextInt(); |
05 | int [][] data= new int [cNum][]; |
06 | for ( int i= 0 ;i<data.length;i++){ |
07 | System.out.printf( "%d組のクラスの人数>" ,i+ 1 ); |
08 | int sNum= new java.util.Scanner(System.in).nextInt(); |
09 | data[i]= new int [sNum]; |
10 | for ( int j= 0 ;j<sNum;j++){ |
11 | System.out.printf( "%d組%d人目の点数>" ,i+ 1 ,j+ 1 ); |
12 | data[i][j]= new java.util.Scanner(System.in).nextInt(); |
15 | System.out.println( "--表出力--" ); |
16 | for ( int i= 0 ;i<data.length;i++){ |
17 | System.out.printf( "%d組" ,i+ 1 ); |
18 | for ( int j= 0 ;j<data[i].length;j++){ |
19 | System.out.printf( "%3d" ,data[i][j]); |
コメント