• 締切済み

コマンドライン引数

コマンドライン引数で以下のようなプログラムを実行したいのですが どうしたらいいのか分かりません!! みなさんの意見を聞かせてください(lll´Д`lll)    □☆□□□☆□□□☆□□□☆□    ☆★☆☆☆★☆☆☆★☆☆☆★☆    □☆□□□☆□□□☆□□□☆□    □☆□□□☆□□□☆□□□☆□    ☆★☆☆☆★☆☆☆★☆☆☆★☆    □☆□□□☆□□□☆□□□☆□    □☆□□□☆□□□☆□□□☆□    ☆★☆☆☆★☆☆☆★☆☆☆★☆    □☆□□□☆□□□☆□□□☆□    □☆□□□☆□□□☆□□□☆□ プログラムは途中まで作ったのですが、肝心なとこは 全く分りませんっっ #include <stdio.h> int main(int argc, char *argv[]) { int yoko, tate, i, j; if( argc < 3 ) return(1); sscanf( argv[1], "%d", &yoko ); sscanf( argv[2], "%d", &tate ); for( j = 0; j < tate; j++ ) { printf("\n"); } return(0); } /* end of pat2.c */

みんなの回答

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★アドバイス ・それではもう少し。  まずは縦の行単位に『スペース行』と『☆の行』を if() 文で処理を分けます。 ・次は『スペース行』について考えます。  この行は『2列目』に『☆の列』があるがこの場所に着目します。  すると『4列』間隔で『☆の列』があることから4で割ってそのあまりを使う。  4割ると 0~3 となる。  『1列目』が 0  『2列目』が 1 ←☆の列  『3列目』が 2  『4列目』が 3    『5列目』が 0  『6列目』が 1 ←☆の列  『7列目』が 2  『8列目』が 3  となることが分かる。 ・次には『☆の行』について考えます。  この行は『2列目』に『★の列』があるがこの場所に着目します。  すると『4列』間隔で『★の列』があることから4で割ってそのあまりを使う。  4割ると 0~3 となる。  『1列目』が 0  『2列目』が 1 ←★の列  『3列目』が 2  『4列目』が 3    『5列目』が 0  『6列目』が 1 ←★の列  『7列目』が 2  『8列目』が 3  となることが分かる。 ・行、列と処理を分ければ以外に簡単に処理できそうだ。  回答者 No.1 さんの回答と一緒に参考にして下さい。 ・以上。

akkakkakk
質問者

お礼

if文を2つ作ればいいってことですよね??

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

そのものズバリを書くと勉強にならないので、ヒントだけを。 ・縦は、3で割った余りが1のときだけ☆になる。 ・横は、4で割った余りが1のときだけ☆になる。 ・縦と横が同時に☆なら★になる。 ・それ以外は□である。 以上のルールでprintfします。 if文を理解していれば書けるはずです。 それと、今ある縦ループ内に横ループを追加する必要があります。 以上です。

akkakkakk
質問者

お礼

分りました、やってみます!! ありがとうございました((*´∀`*))

関連するQ&A