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

прога для определения типа треугольника работает почему-то неверно - C++

Восстановить пароль Регистрация
 
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
17.10.2012, 21:05     прога для определения типа треугольника работает почему-то неверно #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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
// laba2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include"math.h"
#include<iostream>
#define _USE_MATH_DEFINES
# define M_PI 3.14159265358979323846
int main()
{
    double x1,x2,x3,y1,y2,y3,a1,b1,c1,a,b,c,r1,r2,r3,r4,r5;
    double bp,bp1,bp2,br,bi,bi1,bi2,L,L1,L2,L3,L4,L5,p;
    setlocale(LC_ALL, "Russian");
    while(1)
{
    printf("\nВведите координаты треугольника:\n");
    printf("\nВведите x1:");
    scanf_s("%f",& x1);
    printf("\nВведите y1:");
    scanf_s("%f",& y1);
    printf("\nВведите x2:");
    scanf_s("%f", & x2);
    printf("\nВведите y2:");
    scanf_s("%f",& y2);
    printf("\nВведите x3:");
    scanf_s("%f",& x3);
    printf("\nВведите y3:");
    scanf_s("%f",& y3);
    a=sqrt(pow((x3-x2),2)+pow((y3-y2),2));
    b=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
    c=sqrt(pow((x3-x1),2)+pow((y3-y1),2));
    a1=((acos((pow(b,2)+pow(c,2)-pow(a,2))/(2*b*c)))*(180/M_PI));
    b1=((acos((pow(a,2)+pow(c,2)-pow(b,2))/(2*a*c)))*(180/M_PI));
    c1=((acos((pow(a,2)+pow(b,2)-pow(c,2))/(2*a*b)))*(180/M_PI));
    printf("%f %f %f\n%f %f %f",a1,b1,c1,a,b,c);
if((((a==0)&&(c==0))||((a==0)&&(b==0)))||((b==0)&&(c==0))||(((a1==180)||(b1==180)||(c1==180)))||((a1==0)||(b1==0)||(c1==0)))//условие проверки на прямую и точку
{
    printf("\nКоординаты заданы не верно!\n");
}
else
    {
if(((a=b=c)&&(c!=0)&&((a1<90)&&(b1<90)&&(c1<90))))
    {
        r1=((pow(3,1.0/2)/6))*a;
        br=((pow(3,1.0/2))/2)*a;
        printf("\nТреугольник:\nравносторонний\nТреугольник:\nостроугольный\n");
        printf("\n   Длины сторон:\n\n а=%f,\n б=%f,\n с=%f",a,b,c);
        printf("\n   Радиус вписанного угла:\n   радиус=%f",r1);
        printf("\n   Длины биссектрис:");
        printf("\n   Длина биссектрисы, делящей угол между сторонами a и b=%f",br);
        printf("\n   Длина биссектрисы, делящей угол между сторонами b и c=%f",br);
        printf("\n   Длина биссектрисы, делящей угол между сторонами a и c=%f",br);
    }
else
    {
if((a==b)||(a==c)||(b==c))
        {
            p=(a+b+c)/2;
            r3=(sqrt((p-a)*(p-b)*(p-c))/p);
            bi=sqrt(pow(a,2)-(pow(b,2)/4));
            bi1=sqrt(pow(a,2)-(pow(b,2)/6));
            bi2=sqrt(pow(a,2)-(pow(b,2)/8));
            printf("\nТреугольник:\nравнобедренный\n");
            if(((a1==90)||(b1==90)||(c1==90))&&((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a))||((a1>89)||(b1>89)||(c1>89)))
                {
                    printf("\nТреугольник:\nпрямоугольный\n");
                }
            if((a1<89)&&(b1<89)&&(c1<89))
                {
                    printf("\nТреугольник:\nостроугольный\n");
                }
            printf("\n   Длины сторон:");
            printf("\n а=%f,\n б=%f,\n с=%f",a,b,c);
            printf("\n   Радиус вписанного угла:\n   радиус=%f",r3);
            printf("\n   Длины биссектрис:");
            printf("\n   Длина биссектрисы, делящей угол между сторонами a и b=%f",bi);
            printf("\n   Длина биссектрисы, делящей угол между сторонами b и c=%f",bi1);
            printf("\n   Длина биссектрисы, делящей угол между сторонами a и c=%f",bi2);
        }
else
        {   
if((a1<89)&&(b1<89)&&(c1<89))
    {
            p=(a+b+c)/2;
            r4=sqrt((p-a)*(p-a)*(p-a))/p;
            L3=(sqrt(a*b*(a+b+c)*(a+b-c)))/(a+b);
            L4=(sqrt(a*b*(a+b+c)*(a+b+c)))/(a+b);
            L5=(sqrt(a*b*(a+b+c)*(a+c-b)))/(a+b);
            printf("\nТреугольник:\nостроугольный\n");
                    if((a=b=c!=0))
                        {
                            printf("\nТреугольник:\nравносторонний\n");
                        }
                    if((a==b)||(a==c)||(b==c))
                        {
                            printf("\nТреугольник:\nравнобедренный\n");
                        }
                    printf("\n   Длины сторон:");
                    printf("\n а=%f,\n б=%f,\n с=%f",a,b,c);
                    printf("\n   Радиус вписанного угла:\n   радиус=%f",r4);
                    printf("\n   Длины биссектрис:\n");
                    printf("\n\tДлина биссектрисы, делящей угол между сторонами a и b=%f",L3);
                    printf("\n\tДлина биссектрисы, делящей угол между сторонами b и c=%f",L4);
                    printf("\n\tДлина биссектрисы, делящей угол между сторонами a и c=%f",L5);
    }
else
        {
if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a))
            {
                bp=sqrt(a*b*(a+b+c)*(a+b-c))/(a+b);//находим длины биссектрис
                bp1=sqrt(b*c*(b+c+a)*(b+c-a))/(b+c);
                bp2=sqrt(a*c*(a+c+b)*(a+c-b))/(a+c);
                r2=(a+b-c)/2.0;
                printf("\nТреугольник:\nпрямоугольный\n");
                if((a==b)||(a==c)||(b==c))
                    {
                        printf("\nТреугольник:\nравнобедренный\n");
                    }
                printf("\n   Длины сторон:\n\n а=%f,\n б=%f,\n с=%f",a,b,c);
            printf("\n   Радиус вписанного угла:\n   радиус=%f",r2);
            printf("\n   Длины биссектрис:");
            printf("\n   Длина биссектрисы, делящей угол между сторонами a и b=%f",bp);
            printf("\n   Длина биссектрисы, делящей угол между сторонами b и c=%f",bp1);
            printf("\n   Длина биссектрисы, делящей угол между сторонами a и c=%f",bp2);
            }
else
        {
if(((a1>90)||(b1>90)||(c1>90)))
            {
                p=(a+b+c)/2;
            r5=sqrt((p-a)*(p-a)*(p-a))/p;
            L=(sqrt(a*b*(a+b+c)*(a+b-c)))/(a+b);
            L1=(sqrt(a*b*(a+b+c)*(a+b+c)))/(a+b);
            L2=(sqrt(a*b*(a+b+c)*(a+c-b)))/(a+b);
            printf("\nТреугольник:\nтупоугольный\n%f %f %f",a1,b1,c1);
                if((a==b)||(a==c)||(b==c))
                    {
                        printf("\nТреугольник:\nравнобедренный\n");
                    }
                printf("\n   Длины сторон:");
                    printf("\n а=%f,\n б=%f,\n с=%f",a,b,c);
                    printf("\n   Радиус вписанного угла:\n   радиус=%f",r5);
                    printf("\n   Длины биссектрис:");
                    printf("\n   Длина биссектрисы, делящей угол между сторонами a и b=%f",L);
                    printf("\n   Длина биссектрисы, делящей угол между сторонами b и c=%f",L1);
                    printf("\n   Длина биссектрисы, делящей угол между сторонами a и c=%f",L2);
                
            }
         }
      }
    }
  }
 }
}
 getchar();
 getchar();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 21:05     прога для определения типа треугольника работает почему-то неверно
Посмотрите здесь:

Не могу понять почему не работает прога(структуры) C++
Почему неверно писать #include <iostream.h>? C++
почему не работает прога? C++
вот прога почему то не работает C++
C++ Простая прога на использование конструкторов и деструкторов в с++ не работает ( не пойму почему (
C++ прога определения кол-ва повторений букв и их сочетаний
Создать шаблонный класс для определения нормы элемента заданного типа C++
Составить программу для определения типа треугольника C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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