C言語なら俺に聞け! Part 121
■ このスレッドは過去ログ倉庫に格納されています
0509498
2006/02/02(木) 18:46:06一応指摘しておいたほうがよさそうなところだけ掻い摘んで。
>int a[3][3]={0},fase=0;
・二次元配列の初期化は二重に括弧を使うべき。
→int a[3][3] = {{0}}; int fase = 0;
※そりゃそうと、faseって何?
> return a[3][3];
・配列の範囲外をアクセスしてはいけない。
※そもそも戻した値を使ってないなら戻り値の型はvoidでよかろう。
> scanf("%d",&i);
・scanf()は用心して使うべき。
※fgets()とatoi()/strtol()/sscanf()を組み合わせるのが無難か。
> if(i<0||i>2||j<0||j>2)
> puts("1〜3までの値を入力してください。");
> else if(a[i][j]==1||a[i][j]==2)
> puts("そこはすでに入力済みです。");
> else break;
・ブロック化した方が、修正するときのミスも防止できる。
>if(a[i][j]==1)
>b[i][j]='O';
>else if(a[i][j]==2)
>b[i][j]='X';
> else
> b[i][j]=' ';
> printf("%c ",b[i][j]);
・b配列に入れる必然性がない。if-elseが読み難い。
※一時変数に入れるだけならcharの単純変数でいいし、配列を使用するとすっきりするだろう。
■ このスレッドは過去ログ倉庫に格納されています