Operations Between Numbers
Здравейте,
Решавам задача 09. Operations Between Numbers.
Judge системата ми дава резултат 90/100 с 1 грешен тест. Искам да попитам как мога да видя input-a и output-a на този тест, който ми дава, че е грешен, понеже не ми излиза нищо за тях. Дава ми само следната грешка:
Test #5 (Incorrect answer)
The process executing your submission for this test may not have received the output successfully. Please try to submit again the same solution. If the result does not change, then search the error in the submission itself.
Това е кода
using System;
namespace OperationsBetweenNumbers
{
public class Program
{
public static void Main(string[] args)
{
double n1 = double.Parse(Console.ReadLine());
double n2 = double.Parse(Console.ReadLine());
string symbol = Console.ReadLine();
double result = 0.0;
if (symbol == "+")
{
result = n1 + n2;
if (result % 2 == 0)
{
Console.WriteLine("{0} {1} {2} = {3} - even", n1, symbol, n2, result);
}
else if (result % 2 == 1)
{
Console.WriteLine("{0} {1} {2} = {3} - odd", n1, symbol, n2, result);
}
}
else if (symbol == "-")
{
result = n1 - n2;
if (result % 2 == 0)
{
Console.WriteLine("{0} {1} {2} = {3} - even", n1, symbol, n2, result);
}
else if (result % 2 == 1)
{
Console.WriteLine("{0} {1} {2} = {3} - odd", n1, symbol, n2, result);
}
}
else if (symbol == "*")
{
result = n1 * n2;
if (result % 2 == 0)
{
Console.WriteLine("{0} {1} {2} = {3} - even", n1, symbol, n2, result);
}
else if (result % 2 == 1)
{
Console.WriteLine("{0} {1} {2} = {3} - odd", n1, symbol, n2, result);
}
}
else if (symbol == "/")
{
result = n1 / n2;
if (n2 != 0)
{
Console.WriteLine("{0} / {1} = {2:f2}", n1, n2, result);
}
else
{
Console.WriteLine("Cannot divide {0} by zero", n1);
}
}
else if (symbol == "%")
{
result = n1 % n2;
if (n2 != 0)
{
Console.WriteLine("{0} % {1} = {2}", n1, n2, result);
}
else
{
Console.WriteLine("Cannot divide {0} by zero", n1);
}
}
}
}
}
Здравейте,
проблемът при вас е следния. Когато ви бъдат подадени числа, чийто резултат е отрицателно число , вие не връщате никакъв резултат, а именно:
Подават ви 1 - 2 = -1 - не връщате резултат или -10+(-5) = -15 - не връщате резултат и т.н.
При така написаната от вас задача се получава следното при следния пример 1 - 2 = -1.
Подаваме минус (-) и влизаме в else if където имаме минус. Но -1%2 е нито 0 , нито 1, резултата е -1, тогава няма къде да влезе резултата и програмата приключва без резултат, защото няма проверка за -1, а няма и else проверка.
Как може да решите проблема,заместете всички вложени else if с else, и така ако не влезе програмата в if-a задължително ще влезе в else.
Дано съм успял да ви обясня и помогна. Ако нещо не е ясно ще се опитам отново.
Ако можете да използвате debugger ще ви бъде полезно да го ползвате при такива задачи с много проверки, за да видите откъде минава програмата. Ако не знаете как се използва, мисля, че няма да ви отнеме много време да се научите, въпрос на 15-20 мин е да прочетете и да потренирате малко.
Успех!
Благодаря много за изчерпателния отговор!
Ето тук е решението:
Задача: операции между числа
Здравейте! Открих къде е проблема :). Няма нищо общо с отрицателните стойности. Не си сгрешила с тези редове където е следния текст " else if (result % 2 == 1)", но като реших да ги заменя с "else if (result % 2 != 0)" и джъджа ми даде 100/100. Странно, нали и двете са верни ,но джъджа признава само едното???
Благодаря ти.