周囲長を表示する
この最終ステップでは、入力検証のためのフォーマットされた出力とエラー処理を追加することで、多角形の周囲長計算プログラムを強化します。
既存のファイルを開きます。
cd ~/project
nano polygon_perimeter.c
入力検証とフォーマットされた出力を改善したコードを更新します。
#include <stdio.h>
#define MAX_SIDES 10
#define MIN_SIDES 3
int main() {
float sides[MAX_SIDES];
int num_sides;
float perimeter = 0.0;
// 入力検証付きで辺の数を入力させる
do {
printf("多角形の辺の数を入力してください (3 辺以上、10 辺以下): ",
MIN_SIDES, MAX_SIDES);
scanf("%d", &num_sides);
if (num_sides < MIN_SIDES || num_sides > MAX_SIDES) {
printf("辺の数が不正です。もう一度入力してください。\n");
}
} while (num_sides < MIN_SIDES || num_sides > MAX_SIDES);
// 検証付きで辺の長さを入力
printf("辺の長さを入力してください。\n");
for (int i = 0; i < num_sides; i++) {
float side_length;
do {
printf("辺 %d の長さ (正の数): ", i + 1);
scanf("%f", &side_length);
if (side_length <= 0) {
printf("辺の長さが不正です。正の値を入力してください。\n");
} else {
sides[i] = side_length;
break;
}
} while (1);
}
// すべての辺の長さを合計して周囲長を計算
for (int i = 0; i < num_sides; i++) {
perimeter += sides[i];
}
// 結果のフォーマットされた出力
printf("\n--- 多角形周囲長計算 ---\n");
printf("辺の数:%d\n", num_sides);
printf("\n辺の長さ:\n");
for (int i = 0; i < num_sides; i++) {
printf("辺 %d: %.2f\n", i + 1, sides[i]);
}
printf("\n周囲長計算:\n");
for (int i = 0; i < num_sides; i++) {
printf("%s%.2f", (i > 0) ? " + " : "", sides[i]);
}
printf(" = %.2f\n", perimeter);
printf("\n最終的な周囲長:%.2f\n", perimeter);
return 0;
}
更新されたプログラムをコンパイルします。
gcc -o polygon_perimeter polygon_perimeter.c
プログラムを実行します。
./polygon_perimeter
実行例:
多角形の辺の数を入力してください (3辺以上、10辺以下): 4
辺の長さを入力してください。
辺 1 の長さ (正の数): 5.5
辺 2 の長さ (正の数): 6.2
辺 3 の長さ (正の数): 4.3
辺 4 の長さ (正の数): 7.1
--- 多角形周囲長計算 ---
辺の数: 4
辺の長さ:
辺 1: 5.50
辺 2: 6.20
辺 3: 4.30
辺 4: 7.10
周囲長計算:
5.50 + 6.20 + 4.30 + 7.10 = 23.10
最終的な周囲長: 23.10
このステップで改善された主な点は以下のとおりです。
- 辺の数と辺の長さに対する入力検証を追加しました。
- より詳細でフォーマットされた出力を作成しました。
- 段階的な周囲長計算表示を含めました。
- 最小辺数と最大辺数の制約を確保しました。