• ベストアンサー

*をユーザーが入力した数字の数だけ表示するプログラムの作り方を教えてください

はじめまして。 現在C言語の勉強している大学生です。 『*』をユーザーが入力した数字の数だけ表示するプログラムの作り方を教えてください。 例えばユーザーが5と入力したら*****とでるもの。 (本に載っている演習なのですが答えがのっていないのです。) whileかforを使うのだと思うんですが。。 よろしくお願い致します。

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

  • ベストアンサー
  • TKOZ
  • ベストアンサー率66% (2/3)
回答No.4

これで、OKです。 とても簡単なプログラムです。 #include<stdio.h> int main(void) { int i,num; printf("何個表示しますか?->");scanf("%d",&num); for(i=0;i<num;i++) { printf("*"); } printf("\n"); return 0; }

minicom
質問者

お礼

なるほど...確かに分かりやすいですね! 思いつきませんでした(;_;) 助かりました。 どうもありがとうございます(^-^)

その他の回答 (3)

回答No.3

まず「*を1個表示するプログラム」を考えます。 次に「*を10個表示するプログラム」に書き直します。 次に「10個」の部分を変数にして、プログラムの最初で、その変数を10に初期化するように書き直します。 次に「変数を10に初期化する」を「ユーザーが変数の値を入力する」に書き直します。 「*を1個表示する」には、putcharに限らず、色々な方法があります。 「*を10個表示する」にも「1個表示するのを10回繰り返す」とか「事前に*が10個並んだ文字列を作ってから、1回で表示する」とか、色々な方法があります。 例えば、以下のプログラムは「*が30個並んだ文字列」を使って * ** *** **** (略) **************************** ***************************** ****************************** を表示します。 #include <stdio.h> int main(void) {  int i;  for (i=1;i<=30;i++) {   printf("%s\n",(char *)("******************************")+30-i);  }  return 0; }

minicom
質問者

お礼

丁寧なご回答、どうもありがとうございます。 forの章も勉強したつもりでしたが、まだまだですね(^^;) もっと応用出来る様に見直してみます。 ありがとうございました!

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.2

>putcherを使うんですね! 今回の課題で、出力のために使えるのはputchar「だけ」ではありません。 出力用の関数について、他にどういうものが使えそうか、 調べてみるとよいでしょう。

minicom
質問者

お礼

あちがとうございます(^^) もうちょっと調べてみます!

回答No.1

それってほんの数行のプログラムではないですか? ものすごく簡単だと思うので、これが分からないなら、基礎をもう一度勉強しないと、次に進めないと思います。 一応考え方を示しておきますが scanf で数字の入力 for (入力した数字分のループ回数) { putchar で'*'の出力 } 必要なら putchar で改行文字の出力 これだけです。 少し気を利かせたものにしたければ、scanfの入力値が適正かどうかチェックするとか、コマンドラインパラメタで指定するようにするとか、いろいろあると思いますが、とりあえず一番簡単なパターンで。

minicom
質問者

お礼

こんなに早くお返事を頂き、どうもありがとうございます。 putcherを使うんですね! 周りに聞ける人がいなかったのでとても助かりました。 今も基礎の段階なのですが、もう一度注意して読み直してみます。 どうもありがとうございましたm(_ _)m

関連するQ&A