Софтуерно Инженерство
Loading...
+ Нов въпрос
stefoto avatar stefoto 51 Точки

[Homework] C# Basics - Primitive Data Types and Variables - Problem {15*} - Joro, the Football Player

Здравейте,

Опитвам се да направя кода на "Joro, the Football Player" малко по-разбираем по следния начин:

using System;

class JoroTheFootballPlayer
{
static void Main()
{
string leap = Console.ReadLine();
int numberOfHolidays = -1;
int hometownWeekends = -1;
int plays = 0;

do
{
Console.Write("Please enter the number of holidays: ");
numberOfHolidays = int.Parse(Console.ReadLine());
} while (numberOfHolidays < 0 || numberOfHolidays > 300);

do
{
Console.Write("Please enter the number of weekends at hometown: ");
hometownWeekends = int.Parse(Console.ReadLine());
} while (hometownWeekends < 0 || hometownWeekends > 52);

plays += hometownWeekends;
plays += (52 - hometownWeekends) * 2 / 3;
plays += numberOfHolidays / 2;
if (leap == "t")
{
plays += 3;
}

Console.WriteLine(plays);
}
}

В judge това ми носи точно 0 точки, а го тествам и всичко е точно...

Виждате ли къде е проблемът?

Тагове:
a.angelov avatar a.angelov 1319 Точки

При решаване на задачи в judge входа и изхода трябва да бъде абсолютно точно както се изисква в условието, без излишни коментари каквито ти си сложил:

Console.Write("Please enter the number of holidays: ");

Console.Write("Please enter the number of weekends at hometown: ");

Това директно ти прави задачата грешна, защото не принтваш това което се иска по условие.

При изпитните задачи също така е излишно да правиш проверки за входа - указано е че, той винаги ще бъде верен /поне в този курс/.

Само това са проблемите, останалия код е ОК.

 

ПС. И последно - ползвай pastebin или github за кода, а не го пействай така директно във форума. Тук давай само линк към него - така е прието да се прави, най-малкото защото в тези два сайта кода се чете много по-лесно, защото е подреден и с оцветен синтаксис.

3
stefoto avatar stefoto 51 Точки

Много благодаря за съветите, a.angelov

Поздрави,

Стефото

0
galants avatar galants 12 Точки

Като разглеждах кода ти и се чудя защо инициализираш numberOfHolidays и hometownWeekends  с '-1'?

0
stefoto avatar stefoto 51 Точки

За да отговарят със сигурност на 1 от условията в while условието (един вид застраховка). //while (numberOfHolidays < 0 || numberOfHolidays > 300);

Реално като се загледам в кода няма нужда да ги инициализирам с -1, защото после се четат от конзолата. 

0
glaruscheto avatar glaruscheto 0 Точки

Само да предложа едно решение, което ми се струва малко по-лесно от на колегата:

http://pastebin.com/L2CPcbD9

Като го реших, ми се стори странно, но judge системата ми даде 100/100... 

Успех на всички!

0
stefoto avatar stefoto 51 Точки

Да, това е най-бързото решение, но не те защитава от това да въведеш например брой на уикендите -20, а в условието имаш няколко условия за различните променливи.

0