- ベストアンサー
C言語で2次元配列を使用して画面中央に*を表示するプログラムの作成方法を教えてください!
- C言語で2次元配列を使用して画面中央に*を表示させるプログラムを作成する方法を教えてください。
- 画面の大きさは横80、縦25で、25は奇数です。40×12の範囲に*を表示したいです。
- 2重のループではなく、配列を使用して*を表示する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#include <stdio.h> int main() { int i,j; char star[25][80]; for(i=0;i<25;i++){ for(j=0;j<80;j++){ star[i][j] = ' '; } } star[12][40] = '*'; for(i=0;i<25;i++){ for(j=0;j<80;j++){ printf("%c",star[i][j]); } } return 0; } 拙いですがこういうのはどうでしょうか。 ひとまず、二次元配列に全て' 'を入れて初期化します。 全ての初期化が完了した後に、二次元配列配列[12][40]の値を ' '→'*'に上書きします。 そのあとに再び一文字ずつ文字を打ち込んでいきます。
その他の回答 (1)
- nda23
- ベストアンサー率54% (777/1415)
どうしても配列というなら以下の通りです。 char ary[25][81] = //文字列終端のNULLの分を1文字分とる {{"△△・・・△△"} //△は空白を示す。80文字記述 ,{"△△・・・△△"} ,{"△△・・・△△"} = = = 中略 = = = ,{"△△ * △△"} //12行目は40欄めに*とする ,{"△△・・・△△"} = = = 中略 = = = ,{"△△・・・△△"}}; //全25行 int i; for (i = 0;i < 25;i++) { printf("%s\n",ary[i]);//1行分を出力 } もし、C++のようにString型というデータなら、1行分のデータが 25行あるという1次元配列になりますね。Cでは「文字列型」は 無いので、「文字の配列」で文字列を表すことになるので2次元に なるという訳です。
お礼
ありがとうございます。 参考になります。
お礼
ありがとうございます。 参考にさせていただきます。