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