URI – Beecrownd – 1040 – Everage 3 – C#

Depois de 3 horas apanhando consegui fazer gambiarra o suficiente para conseguir fazer esse treco funcionar. A ideia do exercício é bem simples, mas é bem chatinho de acertar todos os detalhes de exibição.

using System; 
using System.Globalization;

class URI {
    static double Media(double[] lista)
    {
        double media = 0;
        foreach (var item in lista)
        {
            media += item;
        };
        media = media / 10;
        return media;
    }
    
    static double NotaFinal(double exame, double media)
    {
        return (double)((media + exame) / 2.0);
    }

    static void Main(string[] args) { 
       
        
        var entrada = Console.ReadLine().Split();
        double exame = 0;
        

        double[] valores = new double[4];
        valores[0] = double.Parse(entrada[0], CultureInfo.InvariantCulture) * 2;
        valores[1] = double.Parse(entrada[1], CultureInfo.InvariantCulture) * 3;
        valores[2] = double.Parse(entrada[2], CultureInfo.InvariantCulture) * 4;
        valores[3] = double.Parse(entrada[3], CultureInfo.InvariantCulture);

        var mediaFinal = Media(valores);


        Console.WriteLine($"Media: {Math.Round(mediaFinal,1,MidpointRounding.ToEven).ToString("f1", CultureInfo.InvariantCulture)}");
        if (Math.Round(mediaFinal, 1, MidpointRounding.AwayFromZero) > 7.0)
        {
            Console.WriteLine("Aluno aprovado.");    
        } else if (Math.Round(mediaFinal, 1, MidpointRounding.AwayFromZero) < 5.0)
        {
            Console.WriteLine("Aluno reprovado.");
        } else if (Math.Round(mediaFinal, 1, MidpointRounding.AwayFromZero) < 7.0 && Math.Round(mediaFinal, 1, MidpointRounding.AwayFromZero) >= 5.0)
        {
            Console.WriteLine("Aluno em exame.");
            double.TryParse(Console.ReadLine(), NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out exame);
            Console.WriteLine($"Nota do exame: {exame.ToString("f1", CultureInfo.InvariantCulture)}");
            double nFinal = NotaFinal(exame, mediaFinal);
            if (nFinal >= 5.0)
            {
                Console.WriteLine("Aluno aprovado.");
                Console.WriteLine($"Media final: {Math.Round(nFinal, 1, MidpointRounding.AwayFromZero).ToString("f1", CultureInfo.InvariantCulture)}");
            } else
            {
                Console.WriteLine("Aluno reprovado.");
                Console.WriteLine($"Media final: {Math.Round(nFinal, 1, MidpointRounding.AwayFromZero).ToString("f1", CultureInfo.InvariantCulture)}");
            }

        }

    }

}

Leave a Reply

Your email address will not be published. Required fields are marked *