Ввести стороны равностороннего треугольника. Найти площадь этого треугольника и его высоту - C (СИ)
Формулировка задачи:
В универе на первом курсе в первый день сразу задали лабораторную
помогите решить на си задачу:
Ввести стороны равностороннего треугольника. Найти площадь этого треугольника и его высоту. Результат вывести с точностью до трех знаков после запятой
Решение задачи: «Ввести стороны равностороннего треугольника. Найти площадь этого треугольника и его высоту»
textual
Листинг программы
#include <stdlib.h> // strtod
#include <stdio.h> // printf, fgets
#include <math.h> // sqrt
double
input_double(const char* const var_name)
{
static char buf[20];
double n;
char* end;
do {
printf("Input %s: ", var_name);
fgets(buf, sizeof(buf), stdin);
n = strtod(buf, &end);
} while( end == buf );
return n;
}
int
main(void)
{
const double SQRT3_4 = sqrt(3) / 4.0;
while( 1 ) {
double leg = input_double("leg");
if( leg <= 0.0 ) { break; }
double area = SQRT3_4 * leg * leg;
printf("Area = %.3f\n", area);
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с числами с плавающей точкой и вводом-выводом
- Определение функции input_double, которая считывает введенное значение и возвращает его в виде числа с плавающей точкой
- Определение функции main, которая является точкой входа в программу
- Объявление константы SQRT3_4, которая представляет собой корень из 3, деленный на 4
- Запуск цикла while, который продолжается до тех пор, пока пользователь не введет значение меньше или равное нулю
- Ввод значения длины стороны треугольника с помощью функции input_double и сохранение его в переменной leg
- Расчет площади треугольника по формуле S = (√3/4 leg leg) и сохранение ее в переменной area
- Вывод значения площади треугольника на экран с помощью функции printf
- Прерывание цикла while при вводе значения меньше или равного нулю
- Возврат значения 0 из функции main, что означает успешный конец работы программы