/* a и b - катеты, с - гипотенуза, р полупериметр, r -радиус вписанной окружности */
{double a,b,c,p,r; for(;;) { cout << "c a > "; cin >> c >> a; if (a>c) { cout << "Катет не может быть больше гипотенузы! \n"; continue; } else { b=sqrt(c*c-a*a); p=(a+b+c)/2; r=sqrt((p-a)*(p-b)*(p-c)/p); cout << r << '\n'; } } }
maxpavlutenkof
вопервых, мы можем ограничиться только гипотенузой, а катет - лишняя память и усложнение кода . вовторых , зачем делать провверку ввода , если можно брать большее значение за гипотенузу. в третих, зачем для организации бесконечного цикла for , если есть while(1) . и в четвертых , программы на сишке лучше разбивать на функции , но это уже так , пожелание
Answers & Comments
#include<iostream>
using namespace std;
int main()
{
double d;
cin>>d;
cout<<"\nS="<<2*3.14*(d/4); // если нужна площадь , то заменить на cout<<"\nS="<<3.14*(d/4)*(d/4);
}
#include "iostream"
#include "cmath"
using namespace std;int main()
/* a и b - катеты, с - гипотенуза, р полупериметр, r -радиус вписанной окружности */
{double a,b,c,p,r; for(;;) { cout << "c a > "; cin >> c >> a; if (a>c) { cout << "Катет не может быть больше гипотенузы! \n"; continue; } else { b=sqrt(c*c-a*a); p=(a+b+c)/2; r=sqrt((p-a)*(p-b)*(p-c)/p); cout << r << '\n'; } } }