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

Не определяется равносторонний треугольник по заданным координатам - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ** - что это? http://www.cyberforum.ru/cpp-beginners/thread687519.html
long ** mass; Что это значит? Если бы было написано long *mass; - это объявление указателя mass типа int. Но две звездочки что означают?
C++ Поменять местами наименьшие из положительных элементов массивов А (55) и В (8х7) Помогите сделать программу: Поменять местами наименьшие из положительных элементов массивов А (55) и В (8х7). Буду благодарен. http://www.cyberforum.ru/cpp-beginners/thread687516.html
C++ Что-то непонятное с памятью
Есть два класса, базовый: class Rand{ protected: double *masRand;//Указатель на массив сл.вел long size;//Размер массива public: double* rnd( long N = 100, long x0 = 9340718,
C++ base64decode с русскими символами
приветствую всех! Возникла необходимость декодировать сроку закодированную base64. Пришёл к такому выводу, пользуясь онлайн декодерами. Строки, изначально написанные только латинскими символами и/или цифрами декодириются корректно, а вот с русскими получаешься в результате абра кадабра. Прошу подсказать, как реализовать декодирование средствами си++, что бы оно шло корректно и с русскими...
C++ Потоковый ввод/вывод текста http://www.cyberforum.ru/cpp-beginners/thread687481.html
Добрый день! Помогите пожалуйста разобраться. Почему при вводе текста в консоли, он сохраняется каракулями? #include <cstdlib> #include <iostream> #include <fstream> using namespace std;
C++ Насколько лучше Visual Studio2012 Visual Studio2010 Подскажите кто уже работает с последней версией VC , сильно ли она отличаеться от прежней подробнее

Показать сообщение отдельно
Skillet102
1 / 1 / 0
Регистрация: 17.10.2012
Сообщений: 88
06.11.2012, 15:15  [ТС]     Не определяется равносторонний треугольник по заданным координатам
а как ввести эту точность?

Добавлено через 1 час 21 минуту
блин
спасибо,Вам,большоеее!!!

Добавлено через 12 минут
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
а теперь програ то и дело определяет тип треугольника,как равносторонний
при любых координатах
код такой
// laba2.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include "stdlib.h"
#include"math.h"
#include<iostream>
#define _USE_MATH_DEFINES
# define M_PI 3.14159265358979323846
int main()
{
    float x1,x2,x3,y1,y2,y3,a1,b1,c1,a,b,c,r1,r2,r3,r4,r5; 
    float bp,bp1,bp2,br,bi,bi1,bi2,L,L1,L2,L3,L4,L5,p,EPSILON=0.00001;
    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\n %f\n %f\n%f\n%f\n %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((abs(a-b)!=EPSILON)&&(abs(a-c)!=EPSILON)&&(abs(a-b)!=EPSILON)&&(abs(b-c)!=EPSILON))
    {
        printf("\nТреугольник:\nравносторонний\nТреугольник:\nостроугольный\n");
        r1=((pow(3,1.0/2)/6))*a;
        br=((pow(3,1.0/2))/2)*a;
        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))&&(((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Треугольник:\nпрямоугольный\n");
        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   Длины сторон:");       
        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((a==b)||(a==c)||(b==c)&&(a1<89)&&(b1<89)&&(c1<89))
    {
        printf("\nТреугольник:\nравнобедренный\nТреугольник:\nостроугольный\n");
        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   Длины сторон:");       
        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(((a==b)||(a==c)||(b==c))&&((a1>90)||(b1>90)||(c1>90)))
    {
        printf("\nТреугольник:\nравнобедренный\nТреугольник:\nтупоугольный\n");
        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   Длины сторон:");       
        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((a==b)||(a==c)||(b==c))
    {
        printf("\nТреугольник:\nравнобедренный\n");
        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   Длины сторон:");       
        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==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");
        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 а=%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))
    {
        printf("\nТреугольник:\nтупоугольный\n");
        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   Длины сторон:");
        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);
    }
else
    {
if((a1<89)&&(b1<89)&&(c1<89))
    {
        printf("\nТреугольник:\nостроугольный\n");
        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   Длины сторон:");
            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{}
}
}
}
}
}
}
}
}
}
getchar();
 getchar();
}
Добавлено через 9 минут
I.M.,теперь при вводе координат для равнобедренного.ювсе равно определяет как равносторонний
 
Текущее время: 08:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru