色の知識で人生の可能性が広がる!みんなに役立つ色彩検定 >>

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

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

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

教えて!goo グレード

A 回答 (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;
}
    • good
    • 5
この回答へのお礼

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

お礼日時:2009/02/07 21:16

まず「*を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;
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/02/07 21:12

>putcherを使うんですね!



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

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

お礼日時:2009/02/07 21:02

それってほんの数行のプログラムではないですか?


ものすごく簡単だと思うので、これが分からないなら、基礎をもう一度勉強しないと、次に進めないと思います。

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

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

これだけです。

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

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

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

お礼日時:2009/02/07 04:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング