C/C++
Помогите пожалуйста не могу написать код
Пользователь вводит 3 числа - стороны треугольника. Программа должнеа определелить тип треугольника (прямоугольный, разносторонний, равносторонний, равнобедренный).
#include <iostream>
using namespace std;
struct Triangle {
// Если треугольник существует
static bool exist(const double a, const double b, const double c) {
return argument(a, b, c) > 0;
}
// Если треугольник прямоугольный
static bool rectangular(const double a, const double b, const double c) {
auto h = (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
auto mn = (a < b) ? (a < c) ? a : c : (b < c) ? b : c;
auto md = perimeter(a, b, c) - h - mn;
return fabs(h * h - mn * mn + md * md) < 1e-15;
}
// Если треугольник разносторонний
static bool versatile(const double a, const double b, const double c) {
return a != b && b != c && c != a;
}
// Если треугольник равносторонний
static bool equilateral(const double a, const double b, const double c) {
return a == b && b == c;
}
// Если треугольник равнобедренный
static bool isosceles(const double a, const double b, const double c) {
return a == b && b != c || a == c && b != c || b == c && c != a;
}
private:
static double perimeter(const double a, const double b, const double c) {
return a + b + c;
}
static double argument(const double a, const double b, const double c) {
auto p = perimeter(a, b, c) / 2;
return p * (p - a) * (p - b) * (p - c);
}
};
double distance(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
system("chcp 1251 > nul");
auto a = distance("a: ");
auto b = distance("b: ");
auto c = distance("c: ");
if (Triangle::exist(a, b, c)) {
if (Triangle::rectangular(a, b, c)) puts("Треугольник прямоугольный");
if (Triangle::versatile(a, b, c)) puts("Треугольник разносторонний");
if (Triangle::equilateral(a, b, c)) puts("Треугольник равносторонний");
if (Triangle::isosceles(a, b, c)) puts("Треугольник равнобедренный");
} else {
puts("Треугольник не существует!");
}
system("pause > nul");
}
using namespace std;
struct Triangle {
// Если треугольник существует
static bool exist(const double a, const double b, const double c) {
return argument(a, b, c) > 0;
}
// Если треугольник прямоугольный
static bool rectangular(const double a, const double b, const double c) {
auto h = (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
auto mn = (a < b) ? (a < c) ? a : c : (b < c) ? b : c;
auto md = perimeter(a, b, c) - h - mn;
return fabs(h * h - mn * mn + md * md) < 1e-15;
}
// Если треугольник разносторонний
static bool versatile(const double a, const double b, const double c) {
return a != b && b != c && c != a;
}
// Если треугольник равносторонний
static bool equilateral(const double a, const double b, const double c) {
return a == b && b == c;
}
// Если треугольник равнобедренный
static bool isosceles(const double a, const double b, const double c) {
return a == b && b != c || a == c && b != c || b == c && c != a;
}
private:
static double perimeter(const double a, const double b, const double c) {
return a + b + c;
}
static double argument(const double a, const double b, const double c) {
auto p = perimeter(a, b, c) / 2;
return p * (p - a) * (p - b) * (p - c);
}
};
double distance(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
system("chcp 1251 > nul");
auto a = distance("a: ");
auto b = distance("b: ");
auto c = distance("c: ");
if (Triangle::exist(a, b, c)) {
if (Triangle::rectangular(a, b, c)) puts("Треугольник прямоугольный");
if (Triangle::versatile(a, b, c)) puts("Треугольник разносторонний");
if (Triangle::equilateral(a, b, c)) puts("Треугольник равносторонний");
if (Triangle::isosceles(a, b, c)) puts("Треугольник равнобедренный");
} else {
puts("Треугольник не существует!");
}
system("pause > nul");
}
Считываем 3 числа, вызываем 4 функции на определение типа треугольника поочерёдно, если функция выводит единичку завершаем программу с выводом ответа. Проблема с чём? С написанием функций?
Роман Золотухин
Ну как бы да яж написал немогу написать код
Похожие вопросы
- Помогите, пожалуйста, исправить ошибку в коде (C++).
- Не могу написать код на с++ нужно решать через циклы но если у вас другие варианты пишите тоже желательно циклы
- Помогите пожалуйста написать код.(C++)
- Помогите пожалуйста написать код на c++, выводящий имя, фамилию и дату рождения нескольких человек
- Помогите пожалуйста написать код на C++
- Срочно!!! Помогите пожалуйста написать код к задачке на с++! Заранее спасибо!
- Помогите с заданием по программированию, С++, напишите код для 1 курса
- Написать код на языке си
- Помогите пожалуйста решить задачку по C++, напишите полный текст кода пожалуйста
- С++, помогите пожалуйста с кодом, очень прошу, и можете коротко обьяснить код