Нахождение площади и периметра по формулам - 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 ,&degree1);
        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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек
  2. Объявление переменных: n, x1, x2, x3, y1, y2, y3, a, b, c, perimetr, degree, rdegree
  3. Вывод сообщения и запрос на ввод значений a, b и угла между ними
  4. Преобразование угла из градусов в радианы
  5. Вычисление площади треугольника по формуле Герона
  6. Вычисление длины стороны c по формуле Герона
  7. Вычисление периметра треугольника по формуле a + b + c
  8. Проверка на положительность площади s
  9. Вывод значения площади и периметра, если площадь положительна
  10. Вывод сообщения об ошибке, если площадь отрицательна
  11. Возврат значения ошибки

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы