Здравствуйте, решаю задачку для олимпиады.
Написал код, но выдаёт что не верный результат, думаю проблема в типе данных.(Проверять размерность данных и т.п. через if и так далее - не нужно)
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double a,b,c, S, P,p, R;
cin >> a;
cin >> b;
cin >> c;
P = a + b + c;
p = P / 2;
S = sqrt(p*(p - a)*(p - b)*(p - c));
R = sqrt(((p - a)*(p - b)*(p - c)) / p);
cout << P << " "<<S<<" "<<R;
return 0;
}
Не стоит использовать формулу Герона для подсчёта площади - она приводит к переполнению или очень большой погрешности. Тебе гарантировали, что площадь не превосходит 9223372036854775807, но ты-то считаешь квадрат этого числа.
Если ничего не путаю, стоит воспользоваться теоремой синусов или косинусов.
Кроме того, надо использовать тип long double (или более точный) для всех данных и компилятор gcc (не Visual Studio). Число, указанное в качестве ограничения, это 263-1. У обычного double есть только 53 значащих бита, чего не хватит даже для точного считывания входных данных.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Использую QThreadPool, делаю setMaxThreadCount(10), ошибок нету, все работает, только потоков в тредпуле все равно 4(количество ядер на машине), понять совершенно...
Добрый день! Прошу помочь разобраться с проблемойПытаюсь настроить отладчик (gdb 8