- ベストアンサー
*をユーザーが入力した数字の数だけ表示するプログラムの作り方を教えてください
はじめまして。 現在C言語の勉強している大学生です。 『*』をユーザーが入力した数字の数だけ表示するプログラムの作り方を教えてください。 例えばユーザーが5と入力したら*****とでるもの。 (本に載っている演習なのですが答えがのっていないのです。) whileかforを使うのだと思うんですが。。 よろしくお願い致します。
- みんなの回答 (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; }
その他の回答 (3)
- chie65536(@chie65535)
- ベストアンサー率44% (8802/19961)
まず「*を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; }
お礼
丁寧なご回答、どうもありがとうございます。 forの章も勉強したつもりでしたが、まだまだですね(^^;) もっと応用出来る様に見直してみます。 ありがとうございました!
- asuncion
- ベストアンサー率33% (2127/6290)
>putcherを使うんですね! 今回の課題で、出力のために使えるのはputchar「だけ」ではありません。 出力用の関数について、他にどういうものが使えそうか、 調べてみるとよいでしょう。
お礼
あちがとうございます(^^) もうちょっと調べてみます!
- piro19820122
- ベストアンサー率38% (256/672)
それってほんの数行のプログラムではないですか? ものすごく簡単だと思うので、これが分からないなら、基礎をもう一度勉強しないと、次に進めないと思います。 一応考え方を示しておきますが scanf で数字の入力 for (入力した数字分のループ回数) { putchar で'*'の出力 } 必要なら putchar で改行文字の出力 これだけです。 少し気を利かせたものにしたければ、scanfの入力値が適正かどうかチェックするとか、コマンドラインパラメタで指定するようにするとか、いろいろあると思いますが、とりあえず一番簡単なパターンで。
お礼
こんなに早くお返事を頂き、どうもありがとうございます。 putcherを使うんですね! 周りに聞ける人がいなかったのでとても助かりました。 今も基礎の段階なのですが、もう一度注意して読み直してみます。 どうもありがとうございましたm(_ _)m
お礼
なるほど...確かに分かりやすいですね! 思いつきませんでした(;_;) 助かりました。 どうもありがとうございます(^-^)