1
resposta

Sugestão exercício 4 - soma de uma lista de inteiros

List<int>Numeros = new List<int>();
int soma = 0;

void Menu()
{
    Console.Clear();
    Console.Write("Digite 1 para registrar números à lista: \n");
    Console.Write("Digite 2 para exibir a lista de números: \n");
    Console.Write("Digite 3 para exibir a soma dos números da lista: \n");
    string opcao = Console.ReadLine()!;
    int opcaoEscolhida = int.Parse(opcao);

    switch(opcaoEscolhida)
    {
        case 1: RegistrarNumeros();
            break;
        case 2: ExibirNumeros();
            break;
        case 3: CalcularLista();
            break;
    }
}

void RegistrarNumeros()
{
    Console.Clear();
    Console.Write("Digite o número que você gostaria de registrar: \n");
    string registrar = Console.ReadLine()!;
    int registrarNumero = int.Parse(registrar ); 
    Numeros.Add(registrarNumero);
    Console.WriteLine($"Numero: {registrarNumero} registrado com sucesso!");
    Thread.Sleep(3000);
    Menu();
}

void ExibirNumeros()
{
    Console.Clear();
    foreach(int numero in Numeros)
    {

        Console.WriteLine($"Numeros: {numero}");
       
    }
    Thread.Sleep(5000);
    Console.Clear();
    Menu();
}

void CalcularLista()
{
    Console.WriteLine("Calculando os elementos da lista:");
    foreach(int numero in Numeros)
    {
        soma += numero;
    }
    Console.Clear();
    Console.WriteLine($"Resultado da soma de todos os elementos da lista: {soma}");
    Thread.Sleep(5000);
    Menu();
}

Menu();
1 resposta

Oi, Tassio! Tudo bem?

Ótimo código, parabéns! Deixo como sugestão apenas um pequeno ajuste na função CalcularLista, para garantir que a soma seja calculada corretamente a cada vez que a função é chamada: atualmente, a variável soma não é reiniciada, o que pode levar a resultados incorretos se a função for chamada mais de uma vez.

Aqui está uma sugestão de como podemos ajustar o código:

List<int> Numeros = new List<int>();

void Menu()
{
    Console.Clear();
    Console.Write("Digite 1 para registrar números à lista: \n");
    Console.Write("Digite 2 para exibir a lista de números: \n");
    Console.Write("Digite 3 para exibir a soma dos números da lista: \n");
    string opcao = Console.ReadLine()!;
    int opcaoEscolhida = int.Parse(opcao);

    switch(opcaoEscolhida)
    {
        case 1: RegistrarNumeros();
            break;
        case 2: ExibirNumeros();
            break;
        case 3: CalcularLista();
            break;
    }
}

void RegistrarNumeros()
{
    Console.Clear();
    Console.Write("Digite o número que você gostaria de registrar: \n");
    string registrar = Console.ReadLine()!;
    int registrarNumero = int.Parse(registrar); 
    Numeros.Add(registrarNumero);
    Console.WriteLine($"Numero: {registrarNumero} registrado com sucesso!");
    Thread.Sleep(3000);
    Menu();
}

void ExibirNumeros()
{
    Console.Clear();
    foreach(int numero in Numeros)
    {
        Console.WriteLine($"Numeros: {numero}");
    }
    Thread.Sleep(5000);
    Console.Clear();
    Menu();
}

void CalcularLista()
{
    int soma = 0; // Reinicia a soma a cada chamada
    Console.WriteLine("Calculando os elementos da lista:");
    foreach(int numero in Numeros)
    {
        soma += numero;
    }
    Console.Clear();
    Console.WriteLine($"Resultado da soma de todos os elementos da lista: {soma}");
    Thread.Sleep(5000);
    Menu();
}

Menu();

A principal mudança foi mover a declaração da variável soma para dentro da função CalcularLista, garantindo que ela seja reiniciada a cada vez que a função é chamada.

Espero ter ajudado!

Um forte abraço e bons estudos!