Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語で正方形の中に正方形を表示するプログラムの作り方

プログラムの概要

本プログラムは、C言語を使って「正方形の中に正方形」というパターンをコンソールに出力するものです。実行すると、以下のように二重の正方形が表示されます。

C言語で正方形の中に正方形を表示するプログラムの作り方

アルゴリズム

  1. 描画する外側の正方形の行数をユーザーから入力として受け取る。
  2. 指定された行数をもとに、外側の正方形を表示する。
  3. 外側の正方形の内側に、もう一つ小さな正方形を表示する。

サンプルコード

以下が、正方形の中に正方形を表示するC言語プログラムの完全なソースコードです。

/* Program to print Square inside Square */
#include <stdio.h>
int main()
{
    int r, c, rows;
    clrscr();
    printf("Enter the Number of rows to draw Square inside a Square: ");
    scanf("%d", &rows);
    printf(" ");
    for (r = 1; r <= rows; r++){
        for (c = 1; c <= rows; c++){
            if ((r == 1 || r == rows || c == 1 || c == rows) || (r >= 3 && r <= rows - 2 && c >= 3 && c <= rows - 2) && (r == 3 || r == rows - 2 || c == 3 || c == rows - 2)){
                printf("#");
            }
            else{
                printf(" ");
            }
        }
        printf(" ");
    }
    getch();
    return 0;
}

コードの解説

このプログラムの核心は、二重ループ内の条件式です。各行・各列の座標 (r, c) に対して、記号 # を出力するかどうかを次のように判定しています。

  • 外側の枠線: r == 1 || r == rows || c == 1 || c == rows — 1行目・最終行、および1列目・最終列にあたる位置に # を出力します。
  • 内側の正方形: r >= 3 && r <= rows - 2 && c >= 3 && c <= rows - 2 の範囲内で、さらにその境界(3行目・rows-2行目・3列目・rows-2列目)にあたる位置に # を出力します。
  • その他の部分: 上記以外の位置には空白(スペース)を出力します。

なお、clrscr()getch() は Turbo C などの古い開発環境固有の関数です。GCC や Clang などの現代的な環境で動作させる場合は、これらの呼び出しを削除するか、getch() を標準の getchar() に置き換えてください。また、内側の正方形が正しく描かれるためには、最低でも5行以上の行数を入力する必要があります。

実行結果

たとえば行数として 7 を入力した場合、次のような出力が得られます。

#######
# #
# ### #
# # # #
# ### #
# #
#######

C言語で正方形の中に正方形を表示するプログラムの作り方

  1. 【C言語】正方形の中に描かれた葉の形の面積を求めるプログラム

    正方形の中の葉の面積とは?正方形の中に2つの四分円(90度の扇形)が交わってできる「葉」のような形。この面積を求めるには、図形をいくつかの部分に分解してそれぞれの面積を計算し、それらを組み合わせるのが基本的な考え方です。ここでは、葉の形を2つの同じ部分に分割して考えます。面積の計算手順まず、最初の部分 AECA の面積を求めます。これは次のように表せます。部分AECAの面積 = 四分円 AECDA の面積 − 三角形 ACDA の面積葉全体はこの部分が2つで構成されているため、最終的な公式は次のようになります。葉の面積 = 2 ×(四分円の面積 − 三角形の面積)= a2 ×(π / 2 −

  2. 正方形の中にある葉の形の面積を求める方法

    ここでは、正方形ABCDの内部に存在する、下図のような葉の形(リーフ形状)の面積を求める方法を解説します。正方形の各辺の長さは「a」とします。この葉の形は、互いに等しい2つの部分で構成されています。各部分の面積を p とすると、次のようになります。したがって、葉全体の面積は 2p となります。計算式葉の形は半径 a の円弧によって囲まれた領域から成り立っているため、その面積は以下の公式で求められます。葉の面積 = a2 × (π/2 − 1)実装例(C++)#include <iostream> using namespace std; float leafArea(float a