C/C++
C++ напишите функцию 2 треугольника похожи или нет
C++ напишите функцию 2 треугольника похожи или нет
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
struct Triangle {
double a, b, c;
Triangle() : a(0), b(0), c(0) {}
Triangle(double a, double b, double c) : a(a), b(b), c(c) {}
bool same(const Triangle& t)const {
vector<double> xa{ a, b, c };
vector<double> xb{ t.a, t.b, t.c };
sort(xa.begin(), xa.end());
sort(xb.begin(), xb.end());
return xa == xb;
}
friend ostream& operator<<(ostream& out, const Triangle& t) {
return out << "{ " << t.a << "; " << t.b << "; " << t.c << " }";
}
};
int main() {
Triangle a{ 2.5, 3.7, 2.9 };
Triangle b{ 3.7, 2.9, 2.5 };
Triangle c{ 2.9, 2.5, 3.6 };
cout << " A: " << a << "\n B: " << b << "\n C: " << c << "\n\n";
puts(a.same(b) ? " A == B" : " A != B");
puts(a.same(c) ? " A == C" : " A != C");
puts(b.same(c) ? " B == C" : " B != C");
system("pause > nul");
}
#include <iostream>
#include <vector>
using namespace std;
struct Triangle {
double a, b, c;
Triangle() : a(0), b(0), c(0) {}
Triangle(double a, double b, double c) : a(a), b(b), c(c) {}
bool same(const Triangle& t)const {
vector<double> xa{ a, b, c };
vector<double> xb{ t.a, t.b, t.c };
sort(xa.begin(), xa.end());
sort(xb.begin(), xb.end());
return xa == xb;
}
friend ostream& operator<<(ostream& out, const Triangle& t) {
return out << "{ " << t.a << "; " << t.b << "; " << t.c << " }";
}
};
int main() {
Triangle a{ 2.5, 3.7, 2.9 };
Triangle b{ 3.7, 2.9, 2.5 };
Triangle c{ 2.9, 2.5, 3.6 };
cout << " A: " << a << "\n B: " << b << "\n C: " << c << "\n\n";
puts(a.same(b) ? " A == B" : " A != B");
puts(a.same(c) ? " A == C" : " A != C");
puts(b.same(c) ? " B == C" : " B != C");
system("pause > nul");
}
Юрий Демченко
Это сравнение трех треугольников на равенство. Как я подозреваю, в вопросе имеется в виду сравнение на подобие двух треугольников...
В геометрии нет термина "похожи" :( Формулируй задачу в математических терминах. Подозреваю, что имеется в виду не "похожи", а "подобны". Тогда
#include "iostream"
#include "cmath"
#include "algorithm"
using namespace std;
int main(){
double a[3],b[3],p,eps=1e-4; bool d=true;
cout<<"Vertices of triangle A: "; for(double &i:a)cin>> i;
cout<<"Vertices of triangle B: "; for(double &i:b)cin>> i;
sort(a,a+3); sort(b,b+3); p=a[0]/b[0];
for(int i=0;i<3;i++)if(abs(a[i]/b[i]/p-1)>eps)d=false;
cout<<boolalpha<< d<< endl;}
#include "iostream"
#include "cmath"
#include "algorithm"
using namespace std;
int main(){
double a[3],b[3],p,eps=1e-4; bool d=true;
cout<<"Vertices of triangle A: "; for(double &i:a)cin>> i;
cout<<"Vertices of triangle B: "; for(double &i:b)cin>> i;
sort(a,a+3); sort(b,b+3); p=a[0]/b[0];
for(int i=0;i<3;i++)if(abs(a[i]/b[i]/p-1)>eps)d=false;
cout<<boolalpha<< d<< endl;}
Что значит похожи треугольники или нет? Я посмотрю на 2 треугольника и скажу - похожи. А вы посмотрите - и скажете нет. Кто прав?
Artashes Khachatryan
код, заданный сторонами треугольника, напишите функцию, которая будет определять, похожи ли 2 треугольника или нет
А как заданы треугольники? Координатами на плоскости или в трёхмерном пространстве? Своими тремя сторонами, двумя сторонами и углом между ними или же стороной и прилегающим к ней углам? Да, и какая всё таки мера похожести ?
"Подобны",наверное. Думаю, неудачный перевод. Например, если перевести дословно с армянского, будет звучать именно так.
Если с английского - то совсем не так ))
Если с английского - то совсем не так ))
Похожие вопросы
- Помогите написать функцию на C++
- Как написать функцию которая вычисляет арктангенс из любого числа на c++ без использования библиотек
- Как написать функцию в c++ которая складывает все положительные числа
- Пожалуйста, помогите понять как написать функцию (С)
- Написал функцию, которая добавляет элемент в конец массива, как можно улучшить? Нули не учитываются.
- Вопрос по языку си. Написать функцию
- Лютый препод не унимается. Просит без ООП написать функцию обмена значениями переменных любого типа!
- Возможно ли на C++ написать операционную систему, и чем C++ в этом отличается от C?
- Задания на функции С++ Написать функцию, возвращающую:
- C++ нахождение функция нахождения логарифма