Нахождение площади и периметра по формулам - 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
- Вывод значения площади и периметра, если площадь положительна
- Вывод сообщения об ошибке, если площадь отрицательна
- Возврат значения ошибки
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д