こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

はじめまして。
現在C言語の勉強している大学生です。

『*』をユーザーが入力した数字の数だけ表示するプログラムの作り方を教えてください。
例えばユーザーが5と入力したら*****とでるもの。

(本に載っている演習なのですが答えがのっていないのです。)
whileかforを使うのだと思うんですが。。
よろしくお願い致します。

投稿日時 - 2009-02-07 03:27:14

QNo.4695966

暇なときに回答ください

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

これで、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;
}

投稿日時 - 2009-02-07 14:16:48

お礼

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

投稿日時 - 2009-02-07 21:16:07

ANo.4

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.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;
}

投稿日時 - 2009-02-07 12:15:39

お礼

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

投稿日時 - 2009-02-07 21:12:04

ANo.2

>putcherを使うんですね!

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

投稿日時 - 2009-02-07 07:24:49

お礼

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

投稿日時 - 2009-02-07 21:02:14

ANo.1

それってほんの数行のプログラムではないですか?
ものすごく簡単だと思うので、これが分からないなら、基礎をもう一度勉強しないと、次に進めないと思います。

一応考え方を示しておきますが

scanf で数字の入力
for (入力した数字分のループ回数) {
putchar で'*'の出力
}
必要なら putchar で改行文字の出力

これだけです。

少し気を利かせたものにしたければ、scanfの入力値が適正かどうかチェックするとか、コマンドラインパラメタで指定するようにするとか、いろいろあると思いますが、とりあえず一番簡単なパターンで。

投稿日時 - 2009-02-07 03:40:24

お礼

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

どうもありがとうございましたm(_ _)m

投稿日時 - 2009-02-07 04:08:01

あなたにオススメの質問