[C言語] アスタリスクで図形(三角形や四角形)を描く方法
C言語でアスタリスクを使って図形を描く方法は、主にループ構造を利用します。
例えば、三角形を描くには、forループを用いて行ごとにアスタリスクの数を増やしていくことで実現できます。
四角形の場合は、縦横のループを組み合わせて、各行に一定数のアスタリスクを出力します。
これにより、コンソール上に視覚的な図形を表示することが可能です。
この手法は、プログラミングの基礎を学ぶ上で、ループや条件分岐の理解を深めるのに役立ちます。
三角形を描く方法
C言語でアスタリスクを使って三角形を描く方法について解説します。
ここでは、等辺三角形と直角三角形の描画方法を紹介します。
等辺三角形の描画
等辺三角形は、すべての辺の長さが等しい三角形です。
ここでは、基本的な等辺三角形の描き方と、特定の高さを指定した等辺三角形の描画方法を説明します。
基本的な等辺三角形の描き方
以下のコードは、基本的な等辺三角形を描画する方法を示しています。
#include <stdio.h>
int main() {
    int height = 5; // 三角形の高さ
    for (int i = 1; i <= height; i++) {
        // 空白を出力
        for (int j = i; j < height; j++) {
            printf(" ");
        }
        // アスタリスクを出力
        for (int k = 1; k <= (2 * i - 1); k++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}    *
   ***
  *****
 *******
*********このプログラムは、指定した高さの等辺三角形を描画します。
空白を調整することで、中央にアスタリスクが配置されるようにしています。
高さを指定した等辺三角形の描画
高さをユーザーから入力して等辺三角形を描画する方法を示します。
#include <stdio.h>
int main() {
    int height;
    printf("三角形の高さを入力してください: ");
    scanf("%d", &height);
    for (int i = 1; i <= height; i++) {
        for (int j = i; j < height; j++) {
            printf(" ");
        }
        for (int k = 1; k <= (2 * i - 1); k++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}三角形の高さを入力してください: 3
  *
 ***
*****このプログラムでは、ユーザーが入力した高さに基づいて等辺三角形を描画します。
直角三角形の描画
直角三角形は、1つの角が90度の三角形です。
ここでは、基本的な直角三角形の描き方と、直角の位置を変えた三角形の描画方法を説明します。
基本的な直角三角形の描き方
以下のコードは、基本的な直角三角形を描画する方法を示しています。
#include <stdio.h>
int main() {
    int height = 5; // 三角形の高さ
    for (int i = 1; i <= height; i++) {
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}*
   **
  ***
 ****
*****このプログラムは、左下に直角がある直角三角形を描画します。
直角の位置を変えた三角形の描画
直角を右下に配置した三角形を描画する方法を示します。
#include <stdio.h>
int main() {
    int height = 5; // 三角形の高さ
    for (int i = 1; i <= height; i++) {
        for (int j = i; j < height; j++) {
            printf(" ");
        }
        for (int k = 1; k <= i; k++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}*
   **
  ***
 ****
*****このプログラムは、右下に直角がある直角三角形を描画します。
空白を調整することで、アスタリスクが右側に寄るようにしています。
四角形を描く方法
C言語でアスタリスクを使って四角形を描く方法について解説します。
ここでは、正方形と長方形の描画方法を紹介します。
正方形の描画
正方形は、すべての辺の長さが等しい四角形です。
ここでは、基本的な正方形の描き方と、特定のサイズを指定した正方形の描画方法を説明します。
基本的な正方形の描き方
以下のコードは、基本的な正方形を描画する方法を示しています。
#include <stdio.h>
int main() {
    int size = 5; // 正方形のサイズ
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}*****
*****
*****
*****
*****このプログラムは、指定したサイズの正方形を描画します。
各行に同じ数のアスタリスクを出力することで正方形を形成します。
サイズを指定した正方形の描画
サイズをユーザーから入力して正方形を描画する方法を示します。
#include <stdio.h>
int main() {
    int size;
    printf("正方形のサイズを入力してください: ");
    scanf("%d", &size);
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}正方形のサイズを入力してください: 3
***
***
***このプログラムでは、ユーザーが入力したサイズに基づいて正方形を描画します。
長方形の描画
長方形は、対辺が等しい四角形です。
ここでは、基本的な長方形の描き方と、幅と高さを指定した長方形の描画方法を説明します。
基本的な長方形の描き方
以下のコードは、基本的な長方形を描画する方法を示しています。
#include <stdio.h>
int main() {
    int width = 7;  // 長方形の幅
    int height = 3; // 長方形の高さ
    for (int i = 0; i < height; i++) {
        for (int j = 0; j < width; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}*******
*******
*******このプログラムは、指定した幅と高さの長方形を描画します。
各行に幅の数だけアスタリスクを出力することで長方形を形成します。
幅と高さを指定した長方形の描画
幅と高さをユーザーから入力して長方形を描画する方法を示します。
#include <stdio.h>
int main() {
    int width, height;
    printf("長方形の幅を入力してください: ");
    scanf("%d", &width);
    printf("長方形の高さを入力してください: ");
    scanf("%d", &height);
    for (int i = 0; i < height; i++) {
        for (int j = 0; j < width; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}長方形の幅を入力してください: 4
長方形の高さを入力してください: 2
****
****このプログラムでは、ユーザーが入力した幅と高さに基づいて長方形を描画します。
応用例
ここでは、アスタリスクを使った図形描画の応用例を紹介します。
中空の図形やピラミッド型、菱形の描画方法を解説します。
中空の図形を描く方法
中空の図形は、外枠だけが描かれた図形です。
ここでは、中空の正方形と長方形の描画方法を説明します。
中空の正方形の描画
以下のコードは、中空の正方形を描画する方法を示しています。
#include <stdio.h>
int main() {
    int size = 5; // 正方形のサイズ
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            if (i == 0 || i == size - 1 || j == 0 || j == size - 1) {
                printf("*");
            } else {
                printf(" ");
            }
        }
        printf("\n");
    }
    return 0;
}*****
*   *
*   *
*   *
*****このプログラムは、外枠だけがアスタリスクで描かれた中空の正方形を描画します。
中空の長方形の描画
以下のコードは、中空の長方形を描画する方法を示しています。
#include <stdio.h>
int main() {
    int width = 7;  // 長方形の幅
    int height = 4; // 長方形の高さ
    for (int i = 0; i < height; i++) {
        for (int j = 0; j < width; j++) {
            if (i == 0 || i == height - 1 || j == 0 || j == width - 1) {
                printf("*");
            } else {
                printf(" ");
            }
        }
        printf("\n");
    }
    return 0;
}*******
*     *
*     *
*******このプログラムは、外枠だけがアスタリスクで描かれた中空の長方形を描画します。
ピラミッド型の図形を描く方法
ピラミッド型の図形は、底辺が広く、上に行くほど狭くなる形状です。
ここでは、基本的なピラミッドの描き方と、特定の高さを指定したピラミッドの描画方法を説明します。
基本的なピラミッドの描き方
以下のコードは、基本的なピラミッドを描画する方法を示しています。
#include <stdio.h>
int main() {
    int height = 5; // ピラミッドの高さ
    for (int i = 1; i <= height; i++) {
        for (int j = i; j < height; j++) {
            printf(" ");
        }
        for (int k = 1; k <= (2 * i - 1); k++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}    *
   ***
  *****
 *******
*********このプログラムは、指定した高さのピラミッドを描画します。
高さを指定したピラミッドの描画
高さをユーザーから入力してピラミッドを描画する方法を示します。
#include <stdio.h>
int main() {
    int height;
    printf("ピラミッドの高さを入力してください: ");
    scanf("%d", &height);
    for (int i = 1; i <= height; i++) {
        for (int j = i; j < height; j++) {
            printf(" ");
        }
        for (int k = 1; k <= (2 * i - 1); k++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}ピラミッドの高さを入力してください: 3
  *
 ***
*****このプログラムでは、ユーザーが入力した高さに基づいてピラミッドを描画します。
菱形の図形を描く方法
菱形は、対角線が互いに直角に交わる四辺形です。
ここでは、基本的な菱形の描き方と、特定のサイズを指定した菱形の描画方法を説明します。
基本的な菱形の描き方
以下のコードは、基本的な菱形を描画する方法を示しています。
#include <stdio.h>
int main() {
    int size = 5; // 菱形のサイズ
    for (int i = 1; i <= size; i++) {
        for (int j = i; j < size; j++) {
            printf(" ");
        }
        for (int k = 1; k <= (2 * i - 1); k++) {
            printf("*");
        }
        printf("\n");
    }
    for (int i = size - 1; i >= 1; i--) {
        for (int j = size; j > i; j--) {
            printf(" ");
        }
        for (int k = 1; k <= (2 * i - 1); k++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *このプログラムは、指定したサイズの菱形を描画します。
サイズを指定した菱形の描画
サイズをユーザーから入力して菱形を描画する方法を示します。
#include <stdio.h>
int main() {
    int size;
    printf("菱形のサイズを入力してください: ");
    scanf("%d", &size);
    for (int i = 1; i <= size; i++) {
        for (int j = i; j < size; j++) {
            printf(" ");
        }
        for (int k = 1; k <= (2 * i - 1); k++) {
            printf("*");
        }
        printf("\n");
    }
    for (int i = size - 1; i >= 1; i--) {
        for (int j = size; j > i; j--) {
            printf(" ");
        }
        for (int k = 1; k <= (2 * i - 1); k++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}菱形のサイズを入力してください: 3
  *
 ***
*****
 ***
  *このプログラムでは、ユーザーが入力したサイズに基づいて菱形を描画します。
まとめ
この記事では、C言語を用いてアスタリスクでさまざまな図形を描く方法を解説しました。
基本的な三角形や四角形の描画から、応用的な中空図形やピラミッド、菱形の描画までをカバーしました。
これらの知識を活用して、より複雑な図形やパターンを描くことに挑戦してみてください。
 
![[C言語] 勝つまでじゃんけんするプログラムの書き方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-3075.png)
![[C言語] じゃんけんを繰り返し行うプログラムの書き方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-3074.png)
![[C言語] switch文でじゃんけんの判定をする方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-3073.png)
![[C言語] 5回勝負で勝敗を決めるじゃんけんプログラムの書き方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-3072.png)
![[C言語] 3人でじゃんけんするプログラムの書き方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-3071.png)
![[C言語] オセロをするプログラムの書き方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-3068.png)
![[C言語] クイズを出すプログラムの作り方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-3070.png)
![[C言語] キーボードから文字や数字を入力する方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-3069.png)
![[C言語] アスタリスクを画面に表示する方法](https://af-e.net/wp-content/uploads/2024/08/thumbnail-3067.png)
![[C言語] じゃんけんの勝敗を出すプログラムの作り方](https://af-e.net/wp-content/uploads/2024/08/thumbnail-3076.png)