前提・実現したいこと
2つの配列から、共通している数値とどちらかにしかない数値を表示させたいです。
例
配列1: 4 9 4 3 6 8 7 1 3 10
配列2: 7 3 10 7 5 9 4 9 9 1
共通の数:1 3 4 7 9 10
どちらか入っている数:1 3 4 5 6 7 8 9 10
発生している問題・エラーメッセージ
if文が正確に機能していないのか、期待している数値が表示されません。
該当のソースコード
java
1public static void main(String[] args) { 2 int num1[] = new int[10]; 3 int num2[] = new int[10]; 4 int same[] = new int[10]; 5 int side[] = new int[10]; 6 System.out.print("配列1:"); 7 for (int i = 0; i < 10; i++) { 8 num1[i] = (int) (Math.random() * 10) + 1; 9 System.out.print(num1[i] + " "); 10 } 11 System.out.println(" "); 12 System.out.print("配列2:"); 13 for (int i = 0; i < 10; i++) { 14 num2[i] = (int) (Math.random() * 10) + 1; 15 System.out.print(num2[i] + " "); 16 } 17 System.out.println(""); 18 System.out.println("共通の数:"); 19 for (int i = 0; i < 10; i++) { 20 if (num1[i] == num2[i]) { 21 same[i] = num1[i] = num2[i]; 22 System.out.print(same[i] + " "); 23 } 24 } 25 System.out.println(""); 26 System.out.println("どちらかの数:"); 27 for (int i = 0; i < 10; i++) { 28 if (num1[i] >= num2[i]) { 29 side[i] = num1[i]; 30 System.out.print(side[i] + " "); 31 } 32 } 33 } 34} 35 36
>上手く表示されない
起きている現象をそのまま記載してください。
https://teratail.com/help/question-tips#questionTips3-4-1
「うまく◯◯しない」が伝える情報量はほぼゼロです
ご返信ありがとうございます。
表示される数値がバラバラで期待している数値になりません。
「期待している数値」のケースパターン挙げた方が良いです。
なにを投入したら何が出る、といった具合に。
で、それなのに何が出てしまう(起きている現象)
仕様は作る人が決めたものなので書かないと分かりませんし
1. 「共通している数値」とは何が共通している数値でしょうか?
2. 「どちらかにしかない数値」に対して num1[i] >= num2[i] というコードを書いていますが、「どちらかにしかない数値」の判定には全く見えません。なぜこのコードを書いたのか説明して下さい。
3. コードの前半と後半は同じように見えますが、不要なら片方を削除して下さい。
1.例に記載いたしました。
2.解決策が分からず記載してしまったものなので、深い根拠などはありません。
3.削除いたしました。
解決済みになり、質問が編集されて例がついていますが、
「どちらかにしかない数値」を表示させたいなのに
「どちらかに入っている数」を表示しています。
配列1: 4 9 4 3 6 8 7 1 3 10
配列2: 7 3 10 7 5 9 4 9 9 1
共通の数:1 3 4 7 9 10
どちらか入っている数:1 3 4 5 6 7 8 9 10
どちらかにしかない数:5 6 8
ではないのですか?
回答3件
あなたの回答
tips
プレビュー