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

06. Vehicle Catalogue от Objects and Classes - Exercise

Здравейте приятели имам проблем с тази задата дава ми 33/100

Ето до къде съм стигнал: https://pastebin.com/uCk0bH6Y

Ето и задачата:

Vehicle Catalogue
You have to make a catalogue for vehicles. You will receive two types of vehicle – car or truck. 
Until you receive the command “End” you will receive lines of input in the format:
{typeOfVehicle} {model} {color} {horsepower}
After the “End” command, you will start receiving models of vehicles. Print for every received vehicle its data in the format:
Type: {typeOfVehicle}
Model: {modelOfVehicle}
Color: {colorOfVehicle}
Horsepower: {horsepowerOfVehicle}
When you receive the command “Close the Catalogue”, stop receiving input and print the average horsepower for the cars and for the trucks in the format:
{typeOfVehicles} have average horsepower of {averageHorsepower}.
The average horsepower is calculated by dividing the sum of horsepower for all vehicles of the type by the total count of vehicles from the same type.
Format the answer to the 2nd decimal point.
Constraints
The type of vehicle will always be car or truck.
You will not receive the same model twice.
The received horsepower will be integer in the interval [1…1000]
You will receive at most 50 vehicles.
Single whitespace will be used for separator.

Ето за тест:

https://judge.softuni.bg/Contests/Practice/Index/1215#5

Тагове:
0
Fundamentals Module
VasilKotsev avatar VasilKotsev 830 Точки
Best Answer

Здравей, runtime грешките идват от това, че използваш .Average() върху празна колекция. Ето по-чисто решение на задачата.

0
Lyubomir_92 avatar Lyubomir_92 0 Точки

Благодаря много!

Може ли малко по  ясна обяснение на тази част?

 double sumCar = car.Count > 0 ? car.Average(x => x.Horsepower) : 0.0;

0
VasilKotsev avatar VasilKotsev 830 Точки

Тернарен оператор (Ternary operator). Общо взето кратък запис нa if/else конструкция, удобна е за такива случаи като този.

 double carsAvgHorsepower = cars.Count > 0 ? cars.Average(x => x.Horsepower) : 0.0;

Ако има поне едно превозно средство в листа ще се изпълни .Average() extension метода върху колекцията и ще запише получения резултат, но ако е празна ще запише 0.0.

0
vanya_ant avatar vanya_ant 78 Точки

Здравей! Стигнах до извода, е гърми LINQ-то където смяташ Average(), когато в дадената колекция е празна. Там трябва да има проверка. Ще го пробвам и аз.

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