• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【C言語を教えてください!】2次元配列について)

C言語で2次元配列を使用して画面中央に*を表示するプログラムの作成方法を教えてください!

このQ&Aのポイント
  • C言語で2次元配列を使用して画面中央に*を表示させるプログラムを作成する方法を教えてください。
  • 画面の大きさは横80、縦25で、25は奇数です。40×12の範囲に*を表示したいです。
  • 2重のループではなく、配列を使用して*を表示する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

#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]の値を ' '→'*'に上書きします。 そのあとに再び一文字ずつ文字を打ち込んでいきます。

grantead
質問者

お礼

ありがとうございます。 参考にさせていただきます。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

どうしても配列というなら以下の通りです。 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次元に なるという訳です。

grantead
質問者

お礼

ありがとうございます。 参考になります。

関連するQ&A

専門家に質問してみよう