@dikxarper

Какие ошибки я сделал в коде?

Задание
Определите тип треугольника (остроугольный, тупоугольный, прямоугольный) с данными сторонами. Входные данные: три натуральных числа – стороны треугольника. Выходные данные: одно из слов rectangular для прямоугольного треугольника, acute для остроугольного треугольника, obtuse для тупоугольного треугольника или impossible, если входные числа не образуют треугольника.

Мой код:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	double a,b,c,x,y,z;
	cin>>a>>b>>c; 	
	x=(b*b+c*c-a*a)/(2*b*c);
	y=(a*a+c*c-b*b)/(2*a*c);
	z=(a*a+b*b-c*c)/(2*a*b);
	if (x&&y&&z<0)
	{
		cout<<"acute";
	}
	else if (x||y||z==0)
	{
		cout<<"rect";
	}
	else if (x||y||z>0)
	{
		cout<<"obtuse";
	}
	else 
	{
		cout<<"impossible";
	}

return 0;
}
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
@galaxy
1. Acute - у вас когда все косинусы меньше нуля?? наоборот же - когда все больше нуля
2. Impossible - проверяйте на неравенство треугольника (или то же самое по сути - что все косинусы < 1 по модулю)
3. Ну и условия научитесь писать:
x&&y&&z<0   ->   x<0 && y<0 &&z<0
x||y||z==0   ->   x==0 || y==0 || z==0
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
С точки зрения С++ ошибок нет. Программа должна собраться и отработать.
Но поставленную задачу она решает явно не правильно.

Алгоритм решения задачи гуглится за 10 секунд. Так же не трудно найти условие для возможности построения треугольника по заданным сторонам.

Судя по всему условия в if у вас записаны не верно. С точки зрения языка они правильные, но делают они, скорее всего, не то что вы хотите. А что вы хотите можно только догадываться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы