Judge - Error в "Koding 101 exam - 24 April 2016"
В "Koding 101 exam - 24 April 2016" задача 01. Поправка на плочки
мисля че има някаква грешка. Направих задачата на C++ и въведох:
20
5
4
1
2
и ми извежда правилно според мен: а judge не ми го приема и иска да е:
19.9 19.90
3.98 3.98
При въвеждане на:
40
0.8
0.6
3
5
Ми извежда вярно:
3302.08
660.42
Ето го и кода ми:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double n, w, l, m, o, sp, pp, Nplochki, time;
cin >> n;
cin >> w;
cin >> l;
cin >> m;
cin >> o;
if(1 <= n <= 100 && 0.1 <= w <= 10.00 && 0.1 <= l <= 10.00 && 0 <= m <= 10 && 0 <= o <= 10)
{
n = n * n;
sp = m * o;
pp = w * l;
n = n - sp;
Nplochki = round(n / pp * 100) / 100;
time = round(Nplochki * 0.2 * 100) / 100;
cout << Nplochki << endl << time << endl;
}
}
А ако грешката е в мен моля кажете ми. Благодаря предварително.
Линк към задачата:https://judge.softuni.bg/Contests/Practice/Index/181#0
Много ви благодаря нямах представа.
Няма проблем. Предполагам, че тези неща ще ви ги кажат на лекциите.
И още няколко неща:
- никога не използвай сравнение от вида
Компилатора го разбира като
и това винаги е вярно (true). Което означава, че сравнението не работи. Например ако имаш
при всякакви стойности на а на екрана ще се отпечатва OK.
Майкрософтския компилатор генерира следното предупреждение:
Предполагам, че и другите компилатори показват подобно съобщение.
Правилният начин е този:
- две думи за закръгляването. За числа с дробна част закръгляването става с fixed и setprecision(). Закръгляването до цяло число става с функциите round(), floor(), ceil() и trunc(). Пример от тук
value round floor ceil trunc
----- ----- ----- ---- -----
2.3 2.0 2.0 3.0 2.0
3.8 4.0 3.0 4.0 3.0
5.5 6.0 5.0 6.0 5.0
-2.3 -2.0 -3.0 -2.0 -2.0
-3.8 -4.0 -4.0 -3.0 -3.0
-5.5 -6.0 -6.0 -5.0 -5.0
- и нещо за имената на променливите - използвай или само български, или само имена на английски, но не ги смесвай.