Форум программистов, компьютерный форум CyberForum.ru

Подскажите, что я делаю не так - C++

Восстановить пароль Регистрация
 
chdunyi
0 / 0 / 0
Регистрация: 15.07.2013
Сообщений: 16
15.07.2013, 17:45     Подскажите, что я делаю не так #1
Вот задача: Написать программу, по длинам сторон распознающую среди всех треугольников АВС прямоугольные. Если таковых нету, то вычислить величину большего угла.
Вот мой код. Подскажите, что я не так делаю.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream.h>
#include<windows.h>
#include<math.h>
 
int main()
{
    SetConsoleOutputCP(1251);
    float a,b,c;
    double  x,y,z;
    cout<<"Введите стороны треугольника"<<endl;
    cin>>a>>b>>c;
    x=acos((b*b+c*c-a*a)/(2*b*c)); // Расчёт трёх углов, по теореме косинусов.
    y=acos((b*b+a*a-c*c)/(2*b*a));
    z=acos((a*a+c*c-b*b)/(2*a*c));
    
    if (pow(a,2)+pow(b,2)==pow(c,2)||pow(a,2)+pow(c,2)==pow(b,2)||pow(c,2)+pow(b,2)==pow(a,2))       cout<<"Данный треугольник прямоугольный"<<endl;//Выявление прямоуголного треугольника, по теореме пифагора.
    else if (x>y && x>z) cout<<"Данный треугольник не прямоугольный. Больший угол х<<x<<endl;
    else if (y>x && y>z) cout<<"Данный треугольник не прямоугольный. Больший угол y<<y<<endl;
    else if (z>y && z>x) cout<<"Данный треугольник не прямоугольный. Больший угол z<<z<<endl; 
 
    
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
15.07.2013, 17:50     Подскажите, что я делаю не так #2
Цитата Сообщение от chdunyi Посмотреть сообщение
Вот мой код. Подскажите, что я не так делаю.
А в чем проблема? Программа работает правильно?
chdunyi
0 / 0 / 0
Регистрация: 15.07.2013
Сообщений: 16
15.07.2013, 17:53  [ТС]     Подскажите, что я делаю не так #3
Ошибки выдаёт
d:\zad1\zads1.cpp(17) : error C2001: newline in constant
d:\zad1\zads1.cpp(18) : error C2143: syntax error : missing ';' before 'else'
d:\zad1\zads1.cpp(18) : error C2001: newline in constant
d:\zad1\zads1.cpp(19) : error C2143: syntax error : missing ';' before 'else'
d:\zad1\zads1.cpp(19) : error C2001: newline in constant
d:\zad1\zads1.cpp(22) : error C2143: syntax error : missing ';' before 'return'
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
15.07.2013, 17:59     Подскажите, что я делаю не так #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream.h>
#include<windows.h>
#include<math.h>
 
int main()
{
SetConsoleOutputCP(1251);
float a,b,c;
double x,y,z;
cout<<"Введите стороны треугольника"<<endl;
cin>>a>>b>>c;
x=acos((b*b+c*c-a*a)/(2*b*c)); // Расчёт трёх углов, по теореме косинусов.
y=acos((b*b+a*a-c*c)/(2*b*a));
z=acos((a*a+c*c-b*b)/(2*a*c));
 
if (pow(a,2)+pow(b,2)==pow(c,2)||pow(a,2)+pow(c,2)==pow(b,2)||p ow(c,2)+pow(b,2)==pow(a,2)) cout<<"Данный треугольник прямоугольный"<<endl;//Выявление прямоуголного треугольника, по теореме пифагора.
else if (x>y && x>z) cout<<"Данный треугольник не прямоугольный. Больший угол х<<x<<endl;
else if (y>x && y>z) cout<<"Данный треугольник не прямоугольный. Больший угол y<<y<<endl;
else if (z>y && z>x) cout<<"Данный треугольник не прямоугольный. Больший угол z<<z<<endl;
 
 
return 0;
}
Ошибки синтаксические:
Строка 16. p ow с пробелом.
Строка 17 и строка 19. Нет закрывающих кавычек " для ограничения выводимого текста.

Ошибки/дополнения логические.
1. Хорошо было бы проверить, что введенные стороны являются треугольником (сумма двух сторон всегда больше 3-й стороны). Если 3 стороны не образуют треугольник, вычисления можно не проводить.
2. Рассчитывать углы только после того как выяснится, что треугольник не прямоугольный, иначе этот расчет не нужен.
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
15.07.2013, 18:21     Подскажите, что я делаю не так #5
у Вас ошибки в логике программы
может этот вариант поможет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<iostream>
 #include<windows.h>
 #include<math.h>
using namespace std;
 
 int main()
 {
 setlocale(LC_CTYPE,"rus");
 double a,b,c;
 cout<<"Введите стороны треугольника"<<endl;
 cin>>a>>b>>c;
 if (((b*b+c*c-a*a)==0 ) || ((b*b+a*a-c*c)==0 ) || ((a*a+c*c-b*b)==0 )) 
     cout<<"Данный треугольник прямоугольный"<<endl;//Выявление прямоуголного треугольника, по теореме пифагора.
 else
     if(((b*b+c*c-a*a)>0) || ((b*b+a*a-c*c)>0 ) || ((a*a+c*c-b*b)>0 ))
         cout<<"Данный треугольник острый"<<endl;
     else
     if(((b*b+c*c-a*a)<0) || ((b*b+a*a-c*c)<0 ) || ((a*a+c*c-b*b)<0 ))
         cout<<"Данный треугольник тупой"<<endl;
 
 
 
system("pause");
 return 0;
 }
chdunyi
0 / 0 / 0
Регистрация: 15.07.2013
Сообщений: 16
15.07.2013, 20:10  [ТС]     Подскажите, что я делаю не так #6
Всем спасибо, вроде сделал, всё работает. Если кому интересно вот конечный код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream.h>
#include<windows.h>
#include<math.h>
 
int main()
{
    SetConsoleOutputCP(1251);
    float a,b,c;
    double  x,y,z;
    cout<<"Ââåäèòå ñòîðîГ*Г» òðåóãîëüГ*ГЁГЄГ*"<<endl;
    cin>>a>>b>>c;
    x=acos((b*b+c*c-a*a)/(2*b*c))*57.295779513; // ГђГ*Г±Г·ВёГІ òð¸õ óãëîâ, ГЇГ® òåîðåìå êîñèГ*óñîâ.
    y=acos((b*b+a*a-c*c)/(2*b*a))*57.295779513;
    z=acos((a*a+c*c-b*b)/(2*a*c))*57.295779513;
 
    while((a+b>=c)&&(a+c>=b)&&(b+c>=a))
    {
    
    if (pow(a,2)+pow(b,2)==pow(c,2)||pow(a,2)+pow(c,2)==pow(b,2)||pow(c,2)+pow(b,2)==pow(a,2)) cout<<"Г„Г*Г*Г*ûé òðåóãîëüГ*ГЁГЄ ïðÿìîóãîëüГ*ûé"<<endl;//ÂûÿâëåГ*ГЁГҐ ïðÿìîóãîëГ*îãî òðåóãîëüГ*ГЁГЄГ*, ГЇГ® òåîðåìå ГЇГЁГґГ*ãîðГ*.
    else if (x>=y && x>=z) cout<<"Г„Г*Г*Г*ûé òðåóãîëüГ*ГЁГЄ Г*ГҐ ïðÿìîóãîëüГ*ûé. Áîëüøèé óãîë Гµ ="<<x<<"ГЈГ°Г*äóñîâ"<<endl;
    else if (y>=x && y>=z) cout<<"Г„Г*Г*Г*ûé òðåóãîëüГ*ГЁГЄ Г*ГҐ ïðÿìîóãîëüГ*ûé. Áîëüøèé óãîë y ="<<y<<"ГЈГ°Г*äóñîâ"<<endl;
    else if (z>=y && z>=x) cout<<"Г„Г*Г*Г*ûé òðåóãîëüГ*ГЁГЄ Г*ГҐ ïðÿìîóãîëüГ*ûé. Áîëüøèé óãîë z ="<<z<<"ГЈГ°Г*äóñîâ"<<endl; 
    break;
    }
    
    return 0;
}
Yandex
Объявления
15.07.2013, 20:10     Подскажите, что я делаю не так
Ответ Создать тему
Опции темы

Текущее время: 01:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru