Нахождение площади и периметра по формулам - C (СИ)
Формулировка задачи:
Добрый день. Написал программу, которая вычисляет площадь и периметр треугольника по 2 сторонам и углу между ними.
Сначала код находит третью сторону (c), затем производит вычисления площади и периметра. Но какие бы я значения не вводил, программа всегда выводит 0.0000..0 в обоих случаях. В чем я ошибся?
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { float a, b, c, perimetr; double degree1; printf("Computing with two sides and the angle between them\n"); printf("Enter the value of the two sides and the angle between them\n"); scanf("%f %f %f" ,&a, &b ,°ree1); double s = a*b*cos(degree1*M_PI/180); float z = a*a + b*b; double c = sqrt(z); perimetr = a + b + c; if (s>=0) { printf("S = %f\n" ,&s); printf("P = %f\n" ,&perimetr); return 0; }
Решение задачи: «Нахождение площади и периметра по формулам»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { int n; float x1, x2, x3, y1, y2, y3, a, b, c, perimetr; double degree, rdegree; printf("Computing with two sides and the angle between them\n"); printf("Enter the value of the two sides and the angle between them\n"); scanf("%f %f %lf" ,&a, &b ,°ree); rdegree = degree * (M_PI/180.0); // угол в радианы double s = 0.5*a*b*sin(rdegree); // находим площадь double z = (a*a + b*b) - 2.0*a*b*cos(rdegree); c = sqrt(z); // находим третью сторону perimetr = a + b + c; // вычисляем периметр int error; if (s > 0) { printf("S = %f\n" ,s); printf("P = %f\n" ,perimetr); error = 0; } else { printf("The area of the triangle can not be negative\n"); error -1; } return error; }
Объяснение кода листинга программы
- Подключение необходимых библиотек
- Объявление переменных: n, x1, x2, x3, y1, y2, y3, a, b, c, perimetr, degree, rdegree
- Вывод сообщения и запрос на ввод значений a, b и угла между ними
- Преобразование угла из градусов в радианы
- Вычисление площади треугольника по формуле Герона
- Вычисление длины стороны c по формуле Герона
- Вычисление периметра треугольника по формуле a + b + c
- Проверка на положительность площади s
- Вывод значения площади и периметра, если площадь положительна
- Вывод сообщения об ошибке, если площадь отрицательна
- Возврат значения ошибки
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д