前提・実現したいこと
多次元配列に数値を入れる
①.②はできたんですが③が全く分かりません。
調べて多次元は入れるに代入くらいしかでてこなくお手上げ状態です
ご教授お願い致します。
3×3の多次元配列を作成し、1~9の数値を格納するプログラム
数値の入れ方を選択してください(1,2,3):1
1つ目の数値を入力してください(1~9):1
入力結果です
1 0 0
0 0 0
0 0 0
2つ目の数値を入力してください(1~9):2
入力結果です
1 2 0
0 0 0
0 0 0
//全部入力が完了したらありがとうございましたと出力で終わり。
①上列から順番に数値を格納していくプログラム 123
456
789
②左列から順番に数値を格納していくプログラム 147
258
369
②右下に数値を格納していくプログラム 492
357
816
ルール説明
1.一番最初は下段の真ん中に1を格納してスタート
2.右下に移動したときに下にはみ出た場合は上に戻る
3.右下に移動したときに右にはみ出た場合は左に戻る
発生している問題・エラーメッセージ
import java.util.Scanner; public class taji { public static void main(String[] args){ Scanner stdIn = new Scanner(System.in); int [][]data=new int[3][3]; int nyuryoku; int x=0; int y=0; int x1=0; int y1=0; System.out.print("数値の入れ方を選択してください"); int irekata=stdIn.nextInt(); if(irekata==1){ for(int i=1;i<9;++i){ System.out.print(i+"つ目の整数を入力してください"); nyuryoku=stdIn.nextInt(); data[x][y]=nyuryoku; ++y; if(y==3){ ++x; y=0; } System.out.println("出力結果です"); //表示部分 スタート for(x1=0;x1<3;++x1){ for(y1=0;y1<3;++y1){ System.out.print(data[x1][y1]); if(y1==2){ System.out.print("\n"); } } } //表示部分 エンド } } if(irekata==2){ for(int i=1;i<9;++i){ System.out.print(i+"つ目の整数を入力してください"); nyuryoku=stdIn.nextInt(); data[x][y]=nyuryoku; ++x; if(x==3){ x=0; ++y; } System.out.println("出力結果です"); //表示部分 スタート for(x1=0;x1<3;++x1){ for(y1=0;y1<3;++y1){ System.out.print(data[x1][y1]); if(y1==2){ System.out.print("\n"); } } } //表示部分 エンド } } } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー