Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

DimitrovDelyan avatar DimitrovDelyan 0 Точки

Objects and classes Exercise- 6. Vehicle catalogue

Здравейте колеги, можете ли да ми помогнете къде имам грешка,джъдж дава 33/100. След изчисленията ми дава average сумата прекалено голямо число и не мога да намеря от къде идва тази разлика. 

Задача- https://pastebin.com/eqTU46Ay

Условие- https://pastebin.com/2QCnnWvk

Тагове:
0
Fundamentals Module
shniaga avatar shniaga 3 Точки

не съм ти гледал кода, но тези точки са ми познати. Там където смяташ средните конски сили, трябва да направиш проверка дали съществуват коли/камиони. ако няма връщай 0.0 hp

0
DimitrovDelyan avatar DimitrovDelyan 0 Точки

foreach (var item in vehicles)
            {
                if (item.TypeOfVehicle == "car")
                {
                    averageCarPower += double.Parse(item.Horsepower);
                    countCars++;
                }
                else if (item.TypeOfVehicle == "truck")
                {
                    averageTruckPower += double.Parse(item.Horsepower);
                    countTrucks++;
                }
            }

Предполагам говорите за тази част. Имам два иф-а които проверяват кола или камион след това събират съответните стойности на всеки елемент в променлива която по късно разделям на броя елементи.

0
Hristo13 avatar Hristo13 227 Точки

Проблема идва от печатането ти на редове 54 и 55. Ако не ти подават коли или камиони countCars или countTrucks ще са ти 0 и се получава деление на нула. Печата not a number/NaN вместо 0.

0
08/03/2019 16:15:11
antonfotev avatar antonfotev 4 Точки

На мен също ми дава 33 точки на същата задача. Кодът ми е следния:

using System;
using System.Collections.Generic;
using System.Linq;

public class Vehicle
{
    public Vehicle(){}
    public Vehicle(string type, string model, string color, int horsepower)
    {
      this.Type = type;
      this.Model= model;
      this.Color = color;
      this.Horsepower = horsepower;    
    }
    
 public string Type {get; set;}
 public string Model {get; set;}
 public string Color {get; set;}
 public int Horsepower {get; set;}
}
                    
public class Program
{
    public static void Main()
    {
      var orderVehiclkles = new List<Vehicle>();
        
        string inputPrim = null;
        
        while ((inputPrim = Console.ReadLine()) != "End")
        {
            string[] input = inputPrim
                .Split();

            orderVehiclkles.Add(new Vehicle(input[0], input[1], input[2], int.Parse(input[3])));        
        } // end while
        
        while ((inputPrim = Console.ReadLine()) != "Close the Catalogue")
        {        
          foreach (var kvp in orderVehiclkles)
          {
             if(kvp.Model == inputPrim)
             {
                var currnetVehicle = new Vehicle(kvp.Type, kvp.Model, kvp.Color, kvp.Horsepower);
                GetPrintTisVehickle(currnetVehicle);
                break;
             }
          } // first foreach
        } // end while
        
        decimal CarsHorsepower = 0;
        decimal TrucksHorsepower = 0;
        
         foreach (var kvp in orderVehiclkles)
          {
            if(kvp.Type == "car") 
            {
             CarsHorsepower += kvp.Horsepower;  
            }
            else
            {
             TrucksHorsepower += kvp.Horsepower;  
            }
            
          } // first foreach
        int n = orderVehiclkles.Where(s => s.Type == "car").Count();
        int x = orderVehiclkles.Where(s => s.Type == "truck").Count();
        if(n > 0)
        {
         CarsHorsepower = CarsHorsepower / n;    
         Console.WriteLine("Cars have average horsepower of: {0:0.00}.", CarsHorsepower);
        }
        else
        {
         Console.WriteLine("Cars have average horsepower of: 0.00");
        }
        
        if (x > 0)
        {
         TrucksHorsepower = TrucksHorsepower / x;
         Console.WriteLine("Trucks have average horsepower of: {0:0.00}.", TrucksHorsepower);
        }
        else
        {
         Console.WriteLine("Trucks have average horsepower of: 0.00");
        } // end dable if-else
        
    }
    
    public static void GetPrintTisVehickle(Vehicle currnetVehicle)
    {
        if(currnetVehicle.Type == "car")
        {
         Console.WriteLine("Type: Car"); 
        }
        else
        {
         Console.WriteLine("Type: Truck");     
        }
        
        Console.WriteLine("Model: {0}", currnetVehicle.Model); 
        Console.WriteLine("Color: {0}", currnetVehicle.Color);                  
        Console.WriteLine("Horsepower: {0}", currnetVehicle.Horsepower); 
    }                
}

// truck Man red 200
// truck Mercedes blue 300
// car Ford green 120
// car Ferrari red 550
// car Lamborghini orange 570
// End
// Ferrari
// Ford
// Man
// Close the Catalogue

// Type: Car
// Model: Ferrari
// Color: red
// Horsepower: 550
// Type: Car
// Model: Ford
// Color: green
// Horsepower: 120
// Type: Truck
// Model: Man
// Color: red
// Horsepower: 200
// Cars have average horsepower of: 413.33.
// Trucks have average horsepower of: 250.00.

0
Djanet avatar Djanet 0 Точки

Нямаш точка накрая при принтирането на 0.00. И препоръчвам да ползваш {n:f2}, защото така няма да е hardcode-нат десетичния разделител, а ще се взема спрямо културата на машината.

 else
        {
         Console.WriteLine("Cars have average horsepower of: 0.00");
        }

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