2012-01-01 11 views
1

私はC++の新機能ですが、数日しかプログラミングしていないので、これはばかげているかもしれませんが、なぜ配列が正しく動作していないのかを知ることができますか?これは私が数独パズルを解決するよう設計しているプログラムの始まりですが、私が解決するために使用している2D配列は正しく動作していません。またこの文字配列コードで何が問題になっていますか?

#include <iostream> 
#include <string> 
using namespace std; 

int main() { 
    char dash[9][9]; 
    for (int array=0; array<9; array++) { 
     for (int array2=0; array2<9; array2++) { 
      dash[array][array2]=array2; 
      cout << dash[array][array2]; 
     } 
    } 
    cout << dash[1][4] << endl; //This is temporary, but for some reason nothing outputs when I do this command. 
    cout << "╔═══════════╦═══════════╦═══════════╗" << endl; 
    for (int count=0; count<3; count++) { 
     for (int count2=0; count2<3; count2++) { 
      cout << "║_" << dash[count][count2*3] << "_|_" << dash[count] [count2*3+1] << "_|_" << dash[count][count2*3+2] << "_"; 
     } 
      cout << "║" << endl; 
    } 
    cout << "╠═══════════╬═══════════╬═══════════╣" << endl; 
    for (int count=0; count<3; count++) { 
     for (int count2=0; count2<3; count2++) { 
      cout << "║_" << dash[count][count2*3] << "_|_" << dash[count] [count2*3+1] << "_|_" << dash[count][count2*3+2] << "_"; 
     } 
     cout << "║" << endl; 
    } 
cout << "╠═══════════╬═══════════╬═══════════╣" << endl; 
for (int count=0; count<3; count++) { 
    for (int count2=0; count2<3; count2++) { 
     cout << "║_" << dash[count][count2*3] << "_|_" << dash[count][count2*3+1] << "_|_" << dash[count][count2*3+2] << "_"; 
    } 
    cout << "║" << endl; 
} 
cout << "╚═══════════╩═══════════╩═══════════╝" << endl; 
return 0; 

}

、まあ、私は数独ボードを構築するための簡単な方法があるかもしれないことを認識してんだけど、私はすでにこの1つは動作しますか、私の心の中で見ることができ、それが失敗した場合学ぶ唯一の方法は失敗によるものです。私が知りたいのは、配列が間違っていることだけです。

+1

正確にはどうなりますか? –

+0

@Ben文字はまったく出力されません。私はあなたが見ることができるように余分なCOUTを加えました。私はランダムな配列値を出力するように言ったが、それはそれをしなかった。 –

+0

コードがうまくコンパイルされているようです... http://codepad.org/tKPRn9rZ何が問題なのですか? –

答えて

3

。まあ、技術的にはそうですが、整数として表示されません。 char配列をint配列に変更するか(非常に簡単)、またはデータを表示するたびに、それをint(退屈)にキャストします。

5

char配列に数値データが格納されていますが、これは問題ありませんが、coutは文字として印刷しようとしています。出力時に整数にキャストしてみてください。

cout << (int)dash[count][count2*3] 

他のオプションは、配列内の文字を格納することです:あなたは、彼らが整数であるかのように文字を表示しようとしている

for (int array=0; array<9; array++) { 
    for (int array2=0; array2<9; array2++) { 
     dash[array][array2] = '0' + array2; 
    } 
} 
0

char dash[9][9]からint dash[9][9]に変更してください。 dash[i][j]に小さい番号を割り当てます.charのように小さい番号を割り当てます。ほとんど制御不可能な制御文字なので、何も分かりにくく印刷されます。 intは、期待通りに印刷されます。

関連する問題