数値処理

[C言語] 左上が直角の三角形を表示する方法を解説

C言語で左上が直角の三角形を表示するには、二重のforループを使用します。

外側のループは行を制御し、内側のループは各行に出力する文字数を制御します。

例えば、n行の三角形を表示する場合、外側のループはn回繰り返し、内側のループはn-i回繰り返してアスタリスクを出力します。

この方法により、左上が直角の三角形を簡単に表示することができます。

左上が直角の三角形の表示の手法

C言語で左上が直角の三角形を表示する方法について解説します。

ここでは、三角形を表示するための基本的なループ構造を用いた実装方法を紹介します。

forループを使った実装

forループを使用して、左上が直角の三角形を表示する方法を説明します。

forループは、繰り返し回数が明確な場合に適しています。

#include <stdio.h>
int main() {
    int size = 5; // 三角形のサイズを指定
    for (int i = size; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            printf("*"); // アスタリスクを表示
        }
        printf("\n"); // 改行
    }
    return 0;
}
*****
****
***
**
*

このプログラムでは、外側のforループが行を制御し、内側のforループが各行に表示するアスタリスクの数を制御しています。

iが減少することで、行ごとに表示するアスタリスクの数が減っていきます。

whileループを使った実装

whileループを使用して、同様の三角形を表示する方法を紹介します。

whileループは、繰り返し条件が動的に変化する場合に適しています。

#include <stdio.h>
int main() {
    int size = 5; // 三角形のサイズを指定
    int i = size;
    while (i > 0) {
        int j = 0;
        while (j < i) {
            printf("*"); // アスタリスクを表示
            j++;
        }
        printf("\n"); // 改行
        i--;
    }
    return 0;
}
*****
****
***
**
*

このプログラムでは、whileループを使って同様の処理を行っています。

iが0になるまでループを続け、各行のアスタリスクの数を制御しています。

do-whileループを使った実装

do-whileループを使用して、三角形を表示する方法を説明します。

do-whileループは、少なくとも一度はループを実行したい場合に適しています。

#include <stdio.h>
int main() {
    int size = 5; // 三角形のサイズを指定
    int i = size;
    do {
        int j = 0;
        do {
            printf("*"); // アスタリスクを表示
            j++;
        } while (j < i);
        printf("\n"); // 改行
        i--;
    } while (i > 0);
    return 0;
}
*****
****
***
**
*

このプログラムでは、do-whileループを使用して、少なくとも一度はアスタリスクを表示する処理を行っています。

iが0になるまでループを続け、各行のアスタリスクの数を制御しています。

応用例

左上が直角の三角形を表示する基本的な方法を学んだところで、ここではその応用例を紹介します。

これにより、プログラムの柔軟性を高め、さまざまな要件に対応できるようになります。

サイズを変更可能な三角形の表示

ユーザーが入力したサイズに応じて、三角形の大きさを変更できるプログラムを作成します。

#include <stdio.h>
int main() {
    int size;
    printf("三角形のサイズを入力してください: ");
    scanf("%d", &size); // ユーザーからサイズを入力
    for (int i = size; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            printf("*"); // アスタリスクを表示
        }
        printf("\n"); // 改行
    }
    return 0;
}
三角形のサイズを入力してください: 3
***
**
*

このプログラムでは、ユーザーが入力したサイズに基づいて三角形を表示します。

scanf関数を使用して、ユーザーからの入力を受け取ります。

文字を変更した三角形の表示

表示する文字を変更することで、異なる見た目の三角形を作成します。

#include <stdio.h>
int main() {
    int size = 5; // 三角形のサイズを指定
    char symbol;
    printf("表示する文字を入力してください: ");
    scanf(" %c", &symbol); // ユーザーから表示する文字を入力
    for (int i = size; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            printf("%c", symbol); // 指定された文字を表示
        }
        printf("\n"); // 改行
    }
    return 0;
}
表示する文字を入力してください: #
#####
####
###
##
#

このプログラムでは、ユーザーが指定した文字を使用して三角形を表示します。

scanf関数で文字を入力し、printfでその文字を表示します。

逆向きの三角形の表示

三角形を逆向きに表示するプログラムを作成します。

ここでは、右上が直角の三角形を表示します。

#include <stdio.h>
int main() {
    int size = 5; // 三角形のサイズを指定
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < i; j++) {
            printf(" "); // 空白を表示
        }
        for (int k = size; k > i; k--) {
            printf("*"); // アスタリスクを表示
        }
        printf("\n"); // 改行
    }
    return 0;
}
*****
 ****
  ***
   **
    *

このプログラムでは、空白を使ってアスタリスクを右に寄せることで、右上が直角の三角形を表示します。

内側のループを2つ使用し、1つは空白を、もう1つはアスタリスクを表示します。

まとめ

この記事では、C言語を用いて左上が直角の三角形を表示する方法とその応用例について解説しました。

基本的なループ構造を理解することで、さまざまな形状を表示するプログラムを作成できるようになります。

この記事を参考に、他の形状やパターンの表示にも挑戦してみてください。

関連記事

Back to top button