Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Можно ли вписать в круг треугольник?


Автор: Relrin 12.10.2013, 00:54
Нужна помощь в решении задачи. Даны площадь круга S1 и площадь треугольника S2. Определить, поместится ли треугольник в круге.

Изначально решение такое:
Код

#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
    float S1, S2;
    float radius, sidesMultiply;
 
    printf("Ploshad kruga: ");
    scanf("%f", &S1);
    printf("Ploshad treugolnika: ");
    scanf("%f", &S2);
 
    radius = (sqrt(S1)/3.14);
    sidesMultiply = (float)((S2/4)/radius);
 
    if ((float)(3.14*pow(radius,3)*4) >= sidesMultiply)
       printf("pomestitsia");
    else
       printf("ne pomestitsia");
 
    getch();
}

Правильное ли такое решение? И можно ли короче решить эту задачу? 

Автор: akizelokro 12.10.2013, 08:10
Вообще, по-моему, применяемая формула неправильна. Потому что в итоге ты всё равно сравниваешь площадь коружности с площадью треугольника. 
А делается правильно, наверно, совсем по-другому. Предполагаешь, что наибольший по площади вписанный треугольник - вписаный в окружность. Смотришь формулу площади правильного треугольника, выраженную через радиус описанной окружности, вычисляешь из радиуса этой окружности, вычисленного из введённой площади круга, сравниваешь.

Автор: McMan 12.10.2013, 09:53
а треугольник то произвольный? 
тогда зная площади нельзя сказать, поместится или не поместится

Цитата

radius = (sqrt(S1)/3.14);


а помоему
 
Код

radius = (sqrt(S1/3.14))

Автор: feodorv 12.10.2013, 10:03
Цитата(Relrin @  12.10.2013,  01:54 Найти цитируемый пост)
Даны площадь круга S1 и площадь треугольника S2. Определить, поместится ли треугольник в круге.

Быть может, дана площадь "равностороннего треугольника"? Иначе для данной площади S2 всегда можно придумать треугольник, не помещающийся в окружность любого радиуса.


Цитата(Relrin @  12.10.2013,  01:54 Найти цитируемый пост)
    radius = (sqrt(S1)/3.14);

Странно вычислен радиус окружности. Может, так:
Код
    radius = sqrt( S1 / 3.1415926);



Цитата(Relrin @  12.10.2013,  01:54 Найти цитируемый пост)
3.14*pow(radius,3)*4

Этак Вы вычисляете тройной объём шара радиуса radius, а затем почему-то сравниваете с непонятной линейной величиной sidesMultiply. Увы, это не решение задачи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)