Софтуерно Инженерство
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 236 Точки

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

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

На мен също ми дава 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