teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2018/04/24 13:11

投稿

katoy
katoy

スコア22328

answer CHANGED
@@ -4,6 +4,7 @@
4
4
  でも、質問文のコードはインデントが変で、構造がよくわかりません。
5
5
 
6
6
  書き換えてみました。
7
+ ===> これは間違ってました。 この後に修正したものをかきます。
7
8
  ```java
8
9
  import java.util.Random;
9
10
 
@@ -53,4 +54,53 @@
53
54
 
54
55
  または
55
56
  What's the simplest way to print a Java array?
56
- [https://stackoverflow.com/questions/409784](https://stackoverflow.com/questions/409784)
57
+ [https://stackoverflow.com/questions/409784](https://stackoverflow.com/questions/409784)
58
+
59
+ 追記:
60
+ サイズを 9 にしてはしらたら、列に数字が重なってました。
61
+ 修正をしてみました。
62
+ ```java
63
+ import java.util.Random;
64
+
65
+ public class TextXX {
66
+ final static int N = 9; // 3
67
+
68
+ public static void main(String[] args) {
69
+ int[][] array = new int[N][N];
70
+ Random rand = new Random();
71
+ for (int y = 0; y < N; y++) {
72
+ for (int x = 0; x < N; x++) {
73
+ int n;
74
+
75
+ // 重ならない数を求める
76
+ while (true) {
77
+ boolean check = true;
78
+ n = rand.nextInt(9) + 1;
79
+ for (int i = 0; i < y; i++) {
80
+ if (n == array[x][i]) {
81
+ check = false;
82
+ break;
83
+ }
84
+ }
85
+ if (check == true) {
86
+ break;
87
+ }
88
+ }
89
+ array[x][y] = n;
90
+ }
91
+ }
92
+ // 表示
93
+ for (int y = 0; y < N; y++) {
94
+ for (int x = 0; x < N; x++) {
95
+ System.out.print(array[x][y]);
96
+ if (x != N -1) {
97
+ System.out.print(" ");
98
+ }
99
+ }
100
+ System.out.println();
101
+ }
102
+ }
103
+ }
104
+ ```
105
+ 実行例
106
+ ![イメージ説明](3820cc4154957390c0c3e9483a77232b.png)

1

追記

2018/04/24 13:11

投稿

katoy
katoy

スコア22328

answer CHANGED
@@ -49,4 +49,8 @@
49
49
  数字を植めてからチェック・修正するのでははく、
50
50
  重ならない数を求めながら順々に埋めて行くようにしています。
51
51
  結果の表示部分はもっと短く書く方法はありますが、2重の for ループで書いてます。
52
- (java array join で googke 検索すると いろいろな書き方がみつかります)
52
+ (java array join で googke 検索すると いろいろな書き方がみつかります)
53
+
54
+ または
55
+ What's the simplest way to print a Java array?
56
+ [https://stackoverflow.com/questions/409784](https://stackoverflow.com/questions/409784)