• 締切済み

○△□の模様

正の整数を入力してその数値の幅だけの正方形をの模様になるように作成する方法(法則性は実行例2を参照、非負の整数が入力された場合は再入力を促す)はどうするのですか? 実行例1 幅:1○ 実行例2 幅:5 ○△□○△ △□○△□ □○△□○ ○△□○△ △□○△□ 実行例3 幅:0 非負の整数を入力してください。 幅:3 ○△□ △□○ □○△

みんなの回答

回答No.1

#include <stdio.h> void print_pattern(int offset, int length) { static const char* pattern[] = { "○", "△", "□" }; int i; for ( i = 0; i < length; ++i ) { printf("%s", pattern[(offset+i)%3]); } putchar('\n'); } void print_square(int n) { int i; for ( int i = 0; i < n; ++i ) { print_pattern(i, n); } } int main() { int i; for ( i = 0; i < 6; ++i ) { printf("\n%d:\n", i); print_square(i); } return 0; } ※ これが宿題/課題なら、   すべての行に対し”なぜこう書いたか”を説明できるまでは提出するな。

関連するQ&A

  • 市松模様

    2つの正の整数を入力すると、それぞれ縦横の数とする”*”の市松模様を出力するプログラム 縦はなんとなくわかるのですが 横の定義の仕方がよくわからないので 教えてください 縦5横6の例 _*_*_* *_*_*_ _*_*_* *_*_*_ _*_*_* _はスペースの意

  • アセンブリ言語

    アセンブリ言語で『筆算的加減算』でプログラムを作成する演習問題が出ました。4月から習い出し全くわからないので参考にさせて頂きたいです。 実行例は⬇️ 1→123 2→456 計算→+  123 +456 --------  579 条件は 入力する2個の整数は正(+)のみとする。 入力する整数の桁数は3桁以内。 足し算は+、引き算はマイナス-を入力する。 負の値は入力しないが、結果の負('-')は表示する。 入力のエラー処理を行う。

  • 棒グラフ C言語

    C言語)実行結果のような非負の整数を読み込んで棒グラフを表示させるプログラム[読み込んだ整数が-1である場合は整数の入力を表示して棒グラフの表示を行う。グラフは★一つで10、☆一つで1を表すこととする。配列を使う。数字を表示する際は3桁分のスペースを使う]はどう作成すればいいのでしょうか? 実行結果 非負の整数を入力してください。(-1が入力されれば即終了) 1:100 2:55 3:77 4:13 5:4 6:-1 1:100 ★★★★★★★★★★ 2: 55 ★★★★★☆☆☆☆☆ 3: 77 ★★★★★★★☆☆☆☆☆☆☆ 4: 13 ★☆☆☆ 5: 4 ☆☆☆☆

  • エクセルのセル(マス目)を正方形にするには?

    列の幅と行の幅を同じ数値に設定してもセル(マス目)が正方形にならないと思います。 どなたかセルを正方形にする方法教えてください。

  • C言語の問題です

    整数xを入力し、xが正か負かゼロかを判定し、表示するプログラムを作成する問題です。 【ヒント】x > 0 が成立するときは正。 x < 0 が成立するときは負。正でも負でもないときはゼロ。 整数x => 2    整数x => -2    整数x => 0 2 は正です -2は負です 0はゼロです 上記の解答は下記の通りなのですが、下記以外の解答方法を教えてはいただけないでしょうか? プログラミングに詳しい方よろしくお願いいたします。 #include <stdio.h> main() { int x; printf("整数x=> "); scanf("%d",&x); if (x > 0) { printf ("%d は正です\n",x); } else if (x < 0) { printf ("%d は負です\n",x); } else { printf ("%d はゼロです\n",x); } return (0); }

  • illustratorの塗り分けについて

    illustratorで模様のパターンを作っています。 そこで疑問に思ったのですが、 正方形と補助線からつくったこの模様に着色する場合、太線(画像参照)でかこったところを塗りたいのですが、 この部分だけを選択して着色するにはどのようにすればいいでしょうか。

  • エクセルで…

    同一の列に正、負の数値が複数入力されており、それぞれ正、負のみでの集計を取りたい場合、どのような関数が便利でしょうか?

  • C言語-繰り返し処理

    キーボードから入力される1以上の整数に対して、次のような処理 をするプログラムを作りたいのです。 入力される整数が5であった場合、 正の整数:5 1***** 2 **** 3 *** 4 ** 5 * (0、または負の数であればエラー、終了するようにする) for文等の繰り返しを使って色々書いてみたのですが、 12345***** などとなってしまいます。 どのように書けばいいのか教えてくださるとありがたいです。

  • C言語の課題

    C言語の問題です。 正の整数nを入力し、1以上n以下の整数を順次表示例通りに表示すること。0以下の整数が入力されることを考慮する必要はない。 実行例 1*2*3*4*5* 教えて頂けないでしょうか?

  • 4つのJavaファイルについての質問

    この4つのプログラムを実行するためのtera padへの入力表記(?)が分かりません、分かる方どうか教えてください!(1つだけでも嬉しいです!) (1.)コマンドラインから整数値を入力して、入力された数値が 10 かそれより大きいかを判断し、メッセージを表示します。   (入力された数値が 10 かそれより大きい場合は okメッセージを出力し、それ以外の場合はNGメッセージを出力します。)このプログラムを作成してください。 (2.)1から200までの数値の中の7の倍数を表示させるプログラムを作成してください。 (3.)1から100までの数値の総和を計算・表示するプログラムを作成してください。 (4)実行結果が 出力したいアスタリスク(*)の数を入力してください: 10 10を入力されました。 **********となるプログラムを作成してください。

専門家に質問してみよう