Loading...
krum_43 avatar krum_43 756 Точки

Проблем при една изпитна задача от изпита от 09.08.2020год.-Plant Discovery

Здравейте колеги,

 

Видях че задачата е коментирана многократно,но аз също забих на нея.

Ще се радвам ако някой ми посочи грешки или сподели негово по-добро решение.

Ето и кода:

https://pastebin.com/ZbxcKp9U

Тагове:
1
C# Fundamentals
MartinBG avatar MartinBG 4803 Точки
Best Answer

Това е поправеното решение, колкото да мине в Judge.

Имаше доста пропуски/грешки, така че най-добре го сравнете с Вашето и питайте, ако има нещо неясно.

1
krum_43 avatar krum_43 756 Точки

Месри за изчерпателният отговор.

Наистина имаше доста пропуски и грешки.

1
08/01/2021 09:41:14
Elena123456 avatar Elena123456 235 Точки

Здравейте,

 виждам, че в началото не правите тази проверка:

  • if (dictPlantRarity.ContainsKey(plant) == false)

                {

                    dictPlantRarity[plant] = rarity;

                    dictPlantRating[plant] = new List<double>();

                }

 

                else if (dictPlantRarity.ContainsKey(plant))

                {

                    dictPlantRarity[plant] = rarity;

                }

 

Спомням си, че тук имаше тънкост при изчисляването на Average()- задължително се проверява предварително дали има елементи, защото програмата първо сумира елементите и после ги разделя на техния брой. Ако броя е 0, тоест няма елементи, програмата ще дели на 0 при опита си да изчисли Average()- и така се получава exception.

Ето пример как може да се избегне този exception: foreach (var kvp in dictPlantRating.OrderByDescending(x =>x.Value.Count > 0 ? x.Value.Average() : 0))

 

А за Reset командата това е достатъчно-

  • else if (leftPartOfCommand == "Reset")

                    {

                        dictPlantRating[plant] = new List<double>();

                    }

 

Споделям и моето решение- https://pastebin.com/mfXHyY4s

И дано да съм успяла да помогна.

Поздрави! smiley

2
08/01/2021 02:48:39
krum_43 avatar krum_43 756 Точки

Да,имаше и доста други пропуски и грешки.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.