Функция: вычислить периметр и площадь треугольника с вещественными сторонами - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <math.h> int trey(float a,float b,float c,int *p,int *s); int main(void) { float a,b,c,p,s; int t; printf("\nvvedite a , b , c \n"); scanf("%f",&a); scanf("%f",&b); scanf("%f",&c); t=trey(a,b,c,&p,&s); trey(a,b,c,&p,&s); if(t==1) printf("vveli otrisatelnyy storony"); if(t==2) {printf("\ntriangle virozdenii\n");printf("\nPerimetr=%f, Ploshad=%f",p,s);} if(t==3) printf("\ntriangle ne syshestvyet\n"); if(t==0) printf("\nPerimetr=%f, Ploshadi=%f",p,s); return 0; } int trey(float a,float b,float c,int *p,int *s) { float per; if((a<0)||(b<0)||(c<0)) return 1; if((a+b==c)||(a+c==b)||(b+c==a)) {*p=a+b+c; *s=0; return 2;} if((a+b<c)||(a+c<b)||(b+c<a)) return 3; per=(a+b+c)/2; *s = sqrt(per*(per-a)*(per-b)*(per-c)); *p = a+b+c; return 0; }
Решение задачи: «Функция: вычислить периметр и площадь треугольника с вещественными сторонами»
textual
Листинг программы
#include <stdio.h> #include <math.h> int trey(float a,float b,float c,/*исправил*/float *p,/*исправил*/float *s); int main(void) { float a,b,c,p,s; int t; printf("\nvvedite a , b , c \n"); scanf(" %f",&a); /*добавил пробел*/ scanf(" %f",&b); /*добавил пробел*/ scanf(" %f",&c); /*добавил пробел*/ t=trey(a,b,c,&p,&s); /*Убрал*/ if(t==1) printf("vveli otrisatelnyy storony"); else if(t==2) { printf("\ntriangle virozdenii\n"); printf("\nPerimetr=%f, Ploshad=%f",p,s); } else if(t==3) printf("\ntriangle ne syshestvyet\n"); else if(t==0) printf("\nPerimetr=%f, Ploshadi=%f",p,s); return 0; } int trey(float a,float b,float c,/*исправил*/float *p,/*исправил*/float *s) { float per; if((a<0)||(b<0)||(c<0)) return 1; if((a+b==c)||(a+c==b)||(b+c==a)) {*p=a+b+c; *s=0; return 2;} if((a+b<c)||(a+c<b)||(b+c<a)) return 3; per=(a+b+c)/2; *s = sqrt(per*(per-a)*(per-b)*(per-c)); *p = a+b+c; return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с вводом/выводом и математическими функциями
- Определяем функцию trey, которая принимает в качестве аргументов значения сторон треугольника и возвращает код результата (1,2,3)
- В функции main считываем значения сторон треугольника с помощью функции scanf
- Вызываем функцию trey и сохраняем ее результат в переменной t
- Выводим соответствующее сообщение в зависимости от значения переменной t
- В функции trey проверяем, являются ли стороны треугольника неотрицательными числами
- Если условие в функции trey не выполняется, то возвращаем 1
- Если условие в функции trey выполняется, то присваиваем значения периметра и площади треугольника соответствующим переменным и возвращаем 2
- Если условие в функции trey не выполняется, то возвращаем 3
- Вычисляем периметр треугольника и присваиваем его значение переменной per
- Вычисляем площадь треугольника и присваиваем ее значение переменной s
- Присваиваем значения периметра и площади треугольника соответствующим переменным в функции main
- Возвращаем 0 из функции main, что означает успешный конец работы программы
- Включаем стандартную библиотеку для работы с математическими функциями
- Заголовочный файл math.h включает в себя определение функции sqrt, которая вычисляет квадратный корень из числа
- Все переменные, которые используются в коде, объявлены как типа float
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д