【C言語】for文でさまざまな三角形を書く

【C言語】for文でさまざまな三角形を書く

はじめに | 基本的なコード例 | 応用例 | まとめ

はじめに

プログラミングを学ぶとき、繰り返し処理(ループ)を使った課題に取り組むことがよくあります。その一つが、画面に直角三角形を描くプログラムです。C言語では、「for文」を使って簡単に繰り返し処理を行い、直角三角形を描画することができます。今回は、その基本的な方法と応用を紹介します。

基本的なコード例

まずは、最もシンプルな直角三角形を描くコードから見ていきましょう。このコードでは、for文を使って行ごとに文字(*)を出力していきます。

#include 

int main() {
    int i, j;
    int height = 5; // 三角形の高さ

    // 行ごとの処理
    for (i = 1; i <= height; i++) {
        // 列ごとの処理
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n"); // 次の行に移る
    }

    return 0;
}
  

このコードでは、変数iが行番号を、変数jが列番号を表しています。外側のfor文で行を制御し、内側のfor文で各行の文字を出力します。実行結果は次のようになります:

*
**
***
****
*****
  

ここでは高さが5の直角三角形を描画していますが、heightの値を変更すれば、三角形の大きさを簡単に変更できます。

応用例

次に、直角三角形の向きを変更したり、空白を使って図形を整えたりする応用的な例を紹介します。

右下に直角三角形を描く

直角が右下に来る三角形を描く場合、空白をうまく使う必要があります。例えば、次のようにコードを書きます。

#include 

int main() {
    int i, j;
    int height = 5; // 三角形の高さ

    // 行ごとの処理
    for (i = 1; i <= height; i++) {
        // 空白を出力
        for (j = 1; j <= height - i; j++) {
            printf(" ");
        }
        // 星を出力
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n"); // 次の行に移る
    }

    return 0;
}
  

このコードでは、最初のfor文で空白を、2番目のfor文で星を出力します。実行結果は次のようになります:

    *
   **
  ***
 ****
*****
  

逆三角形を描く

直角三角形を逆さに描く例も見てみましょう。次のコードで実現できます。

#include 

int main() {
    int i, j;
    int height = 5; // 三角形の高さ

    // 行ごとの処理
    for (i = height; i >= 1; i--) {
        // 星を出力
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n"); // 次の行に移る
    }

    return 0;
}
  

実行結果は次のようになります:

*****
****
***
**
*
  

等辺直角三角形を描く

直角三角形の他にも、等辺直角三角形を描く方法もあります。左右対称な三角形にするためには、空白を調整する必要があります。

#include 

int main() {
    int i, j;
    int height = 5; // 三角形の高さ

    // 行ごとの処理
    for (i = 1; i <= height; i++) {
        // 空白を出力
        for (j = 1; j <= height - i; j++) {
            printf(" ");
        }
        // 星を出力
        for (j = 1; j <= i * 2 - 1; j++) {
            printf("*");
        }
        printf("\n"); // 次の行に移る
    }

    return 0;
}
  

実行結果は次のようになります:

    *
   ***
  *****
 *******
*********
  

まとめ

for文を使って直角三角形を描く方法について、基本的な構文から応用的な例まで紹介しました。C言語のfor文は、繰り返し処理を行う際に非常に強力なツールです。直角三角形を描く課題を通して、繰り返しの基本的な使い方や、空白や星の調整方法を学ぶことができました。これらの知識を応用して、より複雑な図形を描くことも可能です。

コメントは受け付けていません。