
Другие языки программирования и технологии
C++(консоль) Программа, которая выводит данные треугольников со стороной максимум 5000
Не работает (не выводит данные, а сразу предлагает выход из программы) :


// ближайшие 20 жизней вам будет чем заняться
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
struct triangle {
double a;
double b;
double c;
double s;
double m[3];
bool exists();
void area();
void median();
void print();
void _triangle(triangle);
};
void limit(const int);
int main() {
system ("mode con cols=150 lines=50");
limit(5000);
cin.get();
return 0;
}
void limit(const int lim) {
triangle tr;
for (int a = 1; a < lim; a++) {
tr.a = a;
for (int b = a; b < lim; b++) {
tr.b = b;
for (int c = b; c < lim; c++) {
tr.c = c;
if (tr.exists()) tr._triangle(tr);
}
}
}
}
bool triangle::exists() {
bool x = true;
double max = (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
if (a + b + c - max <= max) x = false;
return x;
}
void triangle::area() {
double p = (a + b + c) / 2;
s = sqrt(p * (p - a) * (p - b) * (p - c));
}
void triangle::median() {
m[0] = sqrt((2 * b * b + 2 * c * c - a * a) / 4);
m[1] = sqrt((2 * c * c + 2 * a * a - b * b) / 4);
m[2] = sqrt((2 * a * a + 2 * b * b - c * c) / 4);
}
void triangle::print() {
static unsigned long long inc = 0;
cout << fixed << setprecision(0) << ++inc << ". " << "a = " << a << "; b = " << b << "; c = " << c
<< fixed << setprecision(10) << "; ma = " << m[0] << "; mb = " << m[1] << "; mc = " << m[2] << "; s = " << s << endl;
Sleep(5000);
}
void triangle::_triangle(triangle tr) {
tr.area();
tr.median();
tr.print();
}
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
struct triangle {
double a;
double b;
double c;
double s;
double m[3];
bool exists();
void area();
void median();
void print();
void _triangle(triangle);
};
void limit(const int);
int main() {
system ("mode con cols=150 lines=50");
limit(5000);
cin.get();
return 0;
}
void limit(const int lim) {
triangle tr;
for (int a = 1; a < lim; a++) {
tr.a = a;
for (int b = a; b < lim; b++) {
tr.b = b;
for (int c = b; c < lim; c++) {
tr.c = c;
if (tr.exists()) tr._triangle(tr);
}
}
}
}
bool triangle::exists() {
bool x = true;
double max = (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
if (a + b + c - max <= max) x = false;
return x;
}
void triangle::area() {
double p = (a + b + c) / 2;
s = sqrt(p * (p - a) * (p - b) * (p - c));
}
void triangle::median() {
m[0] = sqrt((2 * b * b + 2 * c * c - a * a) / 4);
m[1] = sqrt((2 * c * c + 2 * a * a - b * b) / 4);
m[2] = sqrt((2 * a * a + 2 * b * b - c * c) / 4);
}
void triangle::print() {
static unsigned long long inc = 0;
cout << fixed << setprecision(0) << ++inc << ". " << "a = " << a << "; b = " << b << "; c = " << c
<< fixed << setprecision(10) << "; ma = " << m[0] << "; mb = " << m[1] << "; mc = " << m[2] << "; s = " << s << endl;
Sleep(5000);
}
void triangle::_triangle(triangle tr) {
tr.area();
tr.median();
tr.print();
}
ну что тебе сказать.. . видимо, в if слетает. дебажь
Похожие вопросы
- C++ Помогите написать программу, которая выводит первые n простых чисел.
- c++ цикл: for Написать программу, которая выводит на экран все числа в диапазоне указанном пользователем.
- Программа C++ Напишите программу которая переводит из десятичной в двоичную систему счисления (C++)
- C# Сделать программу которая разделяет текст на предложения.
- написать программу которая выводит на экран оцифрованную координатную сетку!Нужно решение через Турбо Паскаль!
- В двух массивах строковых констант хранятся слова:существительные и глаголы. Составте программу, которая выводит:
- Существует ли программа которая выводит допустим все 4-х значные числа или 5 значные?
- Напишите программу, которая выводит запись переданного ей числа в римской системе счисления. Используйте процедуру. С++
- Напишите программу, которая выводит на экран все делители числа N, (число N вводится с клавиатуры) абсПАСКАЛЬ ПОМОГИТЕ
- простейшая программа которая будет выводить ответ функций умножения в C#