###前提・実現したいこと
8×8マスのint[][]の2次元配列に0と1を格納し、
パターンがA からG の時そのパターンの形を文字列で表示するプログラムを意図しています。
パターンAの配列が8×8の2次元配列にあるとき、A と表示するプログラムを意図して書いています。
このソースコードはコンパイルは通りますが、何も処理されていない、何も表示されません。
が、A からG のうちの該当パターンの0、1で構成される2次元配列に格納した時、
パターンの形の文字列が出力されません。
入力待ちになっています。
×処理が起こっていないか(←この可能性が高い)、空文字が出力されているか、です。
与えられる入力は
スペースなど区切り無しで
00000000
01100000
01100000
00000000
00000000
00000000
00000000
00000000
で与えられ、この場合 Aを表示する
###発生している問題・エラーメッセージ
入力待ちになっています。
スペース無しで0と1の入力が与えられます。
何も処理されていない。
何も表示されない。
エラーメッセージ
###該当のソースコード
java
1import java.util.*; 2 3public class C{ 4 private static final Scanner scan = new Scanner(System.in) 5 .useDelimiter("[\\s]+"); 6 7 public static void main(String[] args){ 8 9 while(scan.hasNext()){ 10 int[][] mas = new int[8][8]; 11 for(int i = 0; i < 8; i++){ 12 for(int j = 0; j < 8; j++){ 13 mas[i][j] = scan.nextInt(); 14 } 15 } 16 boolean flag = false; 17 String type = ""; 18 Loop:for(int i = 0; i < 8; i++){ 19 for(int j = 0; j < 8; j++){ 20 if(mas[i][j] == 1){ 21 if(j+1 < 8 && i+1 < 8){ 22 if(mas[i][j+1] == 1 && mas[i+1][j] == 1 && mas[i+1][j+1] == 1){ 23 flag = true; 24 type = "A"; 25 break Loop; 26 } 27 } 28 if(i+1 < 8 && i+2 < 8 && i+3 < 8){ 29 if(mas[i+1][j] == 1 && mas[i+2][j] == 1 && mas[i+3][j] == 1){ 30 flag = true; 31 type = "B"; 32 break Loop; 33 } 34 } 35 if(j+1 < 8 && j+2 < 8 && j+3 < 8){ 36 if(mas[i][j+1] == 1 && mas[i][j+2] == 1 && mas[i][j+3] == 1){ 37 flag = true; 38 type = "C"; 39 break Loop; 40 } 41 } 42 if(j+1 < 8 && i+1 < 8 && j+2 < 8){ 43 if(mas[i][j+1] == 1 && mas[i+1][j+1] == 1 && mas[i+1][j+2] == 1){ 44 flag = true; 45 type = "E"; 46 break Loop; 47 } 48 } 49 if(i+1 < 8 && j+1 < 8 && i+2 < 8){ 50 if(mas[i+1][j] == 1 && mas[i+1][j+1] == 1 && mas[i+2][j+1] == 1){ 51 flag = true; 52 type = "F"; 53 break Loop; 54 } 55 } 56 } else if(mas[i][j] == 0){ 57 if(j+1 < 8 && i+1 < 8 && i+2 < 8){ 58 if(mas[i][j+1] == 1 && mas[i+1][j] == 1 && mas[i+1][j+1] == 1 && mas[i+2][j] == 1){ 59 flag = true; 60 type = "D"; 61 break Loop; 62 } 63 } 64 if(j+1 < 8 && j+2 < 8 && i+1 < 8){ 65 if(mas[i][j+1] == 1 && mas[i][j+2] == 1 && mas[i+1][j] == 1 && mas[i+1][j+1] == 1){ 66 flag = true; 67 type = "G"; 68 break Loop; 69 } 70 } 71 } 72 } 73 } 74 System.out.printf("%s\n", type); 75 } 76 } 77}
###試したこと
課題に対してアプローチしたことを記載してください
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/21 07:07
2016/12/21 07:18 編集
2016/12/21 07:19 編集
2016/12/21 07:36 編集
2016/12/21 07:32
2016/12/21 07:59