C言語

【大学の課題で出るC言語】数字をピラミッド型に表示する

どうも多浪Fランぼっち底辺大学生です。

 

今回はターミナル上にピラミッドを表示するアルゴリズムを紹介したいと思います。

ターミナル上でプログラムを実行したときに、ピラミッドの型を出力したい!

といった内容に関して書いていきます。

この記事の内容
  • ピラミッド型に数字を表示したい
  • ループの使い方が分からない
  • 空白部分の作り方が分からない

このような考えを持っている人は読んでみて下さい。

それでは行ってみましょう(‘ω’)ノ

数字をピラミッド型に表示するにあたっての考え方

数字をピラミッド型に表示するためには、2つの点について考えなくてはいけません。

  1. 各段の数字の出力回数
  2. 左端からの空白の出力回数

この2つの中で空白の出力部分に苦戦する人が多いのかなぁと思うので、しっかり考えて実装していきたいものです。

格段の数字を出力

C言語 ピラミッド型に数字を表示

数字の出力に関しては上(↑)の画像を見てもらえばわかると思います。

ループ文を使って各行(2*i-1)コ分の数字を出力していることが分かります。

これを実装すると・・・

こんな感じですね(-ω-)/

この点については皆さん大丈夫かと思います。



空白部分の出力

しかし、問題は空白部分ではないかと思います。

 

自分で記述したプログラムを動かしてみると、

数字部分の出力は上手くいく。だけど・・・空白部分が上手く出力できない

何て状況の人は多いと思います。

数字をピラミッド型に表示する 空白なし
ここから中々進まないんだけど・・・
簡単やで(-ω-)/

 

空白部分の出力を考えるにあたっては、しっかりと規則性を見つけてループ文に組み込むことが重要です。

C言語 ピラミッド型に数字を表示

例えば高さが5のピラミッドを作りたい場合、

  1. 1段目の空白は4コ (5-1)
  2. 2段目の空白は3コ (5-2)
  3. 3段目の空白は2コ (5-3)
  4. 4段目の空白は1コ (5-4)
  5. 5段目の空白は0コ (5-5)

このように規則的に空白が出力できることが分かります。

すなわち、ピラミッドの高さをn、各段数をiとすると、各段は(n-i)コの空白を出力すればいいと抽象化して考えることができます。

したがって、以下のようにプログラムを記述できます。





こんな感じでシンプルに記述することができますね(‘ω’)ノ

数字をピラミッド型に表示するプログラム

以上で解説したプログラムを組み合わせると、以下のようになります。

たったのこれだけですね。

実行結果は下↓
数字をピラミッド型に表示するプログラム

数字の出力回数や空白の出力から回数を把握して、正確にループ処理を行えるかがカギだと思います。

【おまけ問題】逆三角形型と横に傾けたピラミッド型

おまけとしてピラミッドを逆さまにした逆三角形(ピラミッド)型と、ピラミッドを横に傾けるプログラムを紹介したいと思います。

逆三角形(ピラミッド)型

上記のソースコードを実行すると以下のようになります。

数字を逆ピラミッド型に表示する

ピラミッドを横に傾けた型

上記のソースコードを実行すると以下のようになります。

数字をピラミッド型に表示するプログラム

おわり

以上で【C言語で数字をピラミッド型に表示する】問題に関する説明を終わります。

他にもC言語に関する記事を上げていくのでよろしくお願いします。

大学生におすすめAmazonPrimeStudent
【AmazonPrimeStudent】大学生だけが利用できるおすすめな会員制度AmazonのPrime Student会員サービスは大学生だけが獲得できる特典です。プライムビデオやプライムミュージックが利用出来たり、ポイント還元が大幅に大きくなるのでおすすめです。...
人気ブログランキング