auの日記

プログラミング初心者の日記。(auはハンドルネームです)

関数を定義して3つの図形の面積を求めるプログラム

auです。
今回は、関数を作って処理をするプログラムを作ろうと思い、正方形・長方形・円形の3つの図形の面積を求めるプログラムを組みました。

#include <stdio.h>
#define PI 3.14f

float radius = 0; // (ここから)グローバル関数
float side1 = 0;
float side2 = 0;
float circle_side = 0; // (ここまで)グローバル関数

float square(void) {
    printf("正方形の面積を計算します\n");
    printf("半径: ");
    scanf("%f", &radius);
    return radius * radius;
}

float rectangle(void) {
    printf("長方形の面積を計算します\n");
    printf("縦の長さ: ");
    scanf("%f", &side1);
    printf("横の長さ: ");
    scanf("%f", &side2);
    return side1 * side2;
}

float circle(void) {
    printf("円の面積計算します\n");
    printf("半径: ");
    scanf("%f", &circle_side);
    return circle_side * circle_side * PI;
}

int main(void) {
    int type = 0;
    float result = 0;

    printf("求めたい図形を選んでください\n");
    printf("正方形: 1 長方形: 2 円: 3\n");
    scanf("%d", &type);

    switch(type) {
        case 1: // 正方形の面積を求める
            result = square();
            break;
        case 2: // 長方形の面積を求める
            result = rectangle();
            break;
        case 3: // 円の面積を求める
            result = circle();
            break;
        default:
            printf("正しい値が入力されませんでした\n");
            break;
    }
    printf("結果: %.2f\n", result);
    return 0;
}

// 実行結果
求めたい図形を選んでください
正方形: 1 長方形: 2 円: 3
3
円の面積計算します
半径: 9
結果: 254.34

このような感じで計算をしてくれます。
#defineを使ったマクロを使用し円周率(π)を3.14に入れ替えてもらって計算するなどの工夫もしました。
結果を出力する指定子は「%.2f」とすることで、小数点第2位までの表示にしています。