Професионална програма
Loading...
+ Нов въпрос
petaryankov00 avatar petaryankov00 2 Точки

05.Suitcases

Условие:

Напишете програма, която ви помага при товаренето на куфари в багажника на самолет. Всеки самолет има определен капацитет на багажника. До получаване на команда "End" ще получавате обем на куфар. Обемът на всеки трети куфар трябва да се увеличава с 10%, поради загубата на пространство при начина на подреждане. Ако свободното пространството в даден момент е по-малко от обема на куфар товаренето трябва да прекъсне.

Вход

Първоначално се чете един ред:

  • Капацитетът на багажника – реално число в диапазона [100.0…6000.0]

След това до получаване на команда "End" или до запълване на багажника, се чете по един ред:

  • Обем на куфар – реално число в диапазона [100.0…6000.0]

Моето решение:

https://pastebin.com/a4vEeumx

Judge ми дава 70/100 и не мога да разбера грешката ми! Ще съм благодарен, ако някой може да помогне.

Поздрави :) 

Тагове:
1
Programming Basics
MartinBG avatar MartinBG 3099 Точки
Best Answer

Не отчитате правилно кой куфар е 3-ти.

Променете ред №14 от

if (counter % 3 == 0)

на

if ((counter + 1) % 3 == 0)

 

0
nickwork avatar nickwork 655 Точки

Привет, counter-a го сложи в началото на цикъла, направи проверката да не е < 0 , а <=0 , съща така сложи counter тук:

 

if (capacity < 0)

{

counter--;

break;

}

 

Смятам, че тези промени ще ти решат задачата, ако не пиши пак, ще я оправя

0
bl00dz1 avatar bl00dz1 1 Точки

Научи се да си именоваш променливите както трябва. Suitcases 1-2-3-4-5-6 в код от 3000 реда ще се изгубиш много лесно с такова именоване...

Май тук ти е грешката 

  1.                 if (capacity < 0)

  2.                 {

  3.                     break;

  4.                 }

 

Брейкваш след като capacity ти е по-малко от 0, но ако е по-малко от нула значи си вече си добавил 1 куфар, за който няма място :)

 

0