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

C# Fundamentals - Data Types - 08. Beer Kegs [80/100]

По някаква причина единият резултат от 5-те е грешен и не мога да разбера защо. Всичко ми изглежда наред, когато въведа примерните Input-и се получава, но Judge системата не ми дава 100/100. Кодът ми е:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DataTypes_8_BeerKegs
{
    class Program
    {
        static void Main(string[] args)
        {
            int beerKegs = int.Parse(Console.ReadLine());
            double previousVolume = 0.0;
            string previousModel = "";
            string biggestKeg = "";

            for (int i = 0; i < beerKegs; i++)
            {
                string currentModel = Console.ReadLine();
                double radius = float.Parse(Console.ReadLine());
                double height = int.Parse(Console.ReadLine());

                double currentVolume = 3.14 * radius * radius * height;
                if (currentVolume >= previousVolume)
                {
                    biggestKeg = currentModel;
                }
                else
                {
                    biggestKeg = previousModel;
                }
                previousModel = currentModel;
                previousVolume = currentVolume;
            }
            if (previousVolume != 0)
            {
                Console.WriteLine(biggestKeg);
            }
        }
    }
}

Благодаря за помощта предварително.

Тагове:
0
Module: C# Advanced
AlexanderHr avatar AlexanderHr 18 Точки

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

4
keg1
10
10
keg2
9
9
keg3
8
8
keg4
7
7

Пробвай този тест.

0
JulianJulianov avatar JulianJulianov 4 Точки

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _8BeerKegs
{
    class Program
    {
        static void Main(string[] args)
        {
            var numBeer = int.Parse(Console.ReadLine());
            
            double biggestKeg = double.MinValue;     // С този ред избягвам по-сложното сравнение, което си      направил с if/else конструкцията. //
            string modelBeer = "";
            string biggestBeer = "";
            for (int i = 1; i <= numBeer; i++)
            {
                modelBeer = Console.ReadLine();
                var radius = double.Parse(Console.ReadLine());
                var height = int.Parse(Console.ReadLine());
               
                double volumeKeg = Math.PI * radius * radius * height;
                if (volumeKeg > biggestKeg)
                {
                    biggestKeg = volumeKeg;
                    biggestBeer = modelBeer;
                }
            }
            Console.WriteLine(biggestBeer);
        }
    }
}

0
29/09/2019 16:16:25
manevpsp avatar manevpsp 8 Точки

Може да разгледаш и моя код :) 

using System;

namespace _08._Beer_Kegs
{
    class Program
    {
        static void Main(string[] args)
        {
            int numbersOfBeerKegs = int.Parse(Console.ReadLine());
            double biggestKeg = 0;
            string kegName = string.Empty;
            for (int i = 0; i < numbersOfBeerKegs; i++)
            {
                string modelOfTheKeg = Console.ReadLine();
                double radiusOfTheKeg = double.Parse(Console.ReadLine());
                double heightofTheKeg = double.Parse(Console.ReadLine());

                double volume = Math.PI * radiusOfTheKeg * radiusOfTheKeg * heightofTheKeg;
                if (volume > biggestKeg)
                {
                    biggestKeg = volume;
                    kegName = modelOfTheKeg;
                }
            }
            Console.WriteLine(kegName);
        }
    }
}
 

1