Вывод Периметра
В этом заключительном шаге вы улучшите программу вычисления периметра многоугольника, добавив форматированный вывод и обработку ошибок для проверки ввода.
Откройте существующий файл:
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("Введите количество сторон многоугольника (от %d до %d): ",
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
Основные улучшения в этом шаге:
- Добавлена проверка ввода для количества сторон и длин сторон.
- Создан более подробный и форматированный вывод.
- Включён пошаговый вывод вычисления периметра.
- Обеспечены минимальные и максимальные ограничения на количество сторон.