Fácil C#

Array de notas

Enunciado

Crie um array de double com 5 notas, calcule e exiba a média e a maior nota.

Requisitos

  • Declarar um array de double com 5 valores.
  • Calcular a média das notas.
  • Exibir a média e a maior nota com uma casa decimal.

Código inicial

using System;

class Program
{
    static void Main()
    {
        // TODO: crie o array e calcule a média e a maior nota
    }
}

Saída esperada

Média: 7,4
Maior nota: 9,5
Ver dica

Use Array.Max ou percorra o array com um laço para achar a maior nota. Para a média, some os valores e divida pelo tamanho.

Mostrar solução
using System;
using System.Linq;

class Program
{
    static void Main()
    {
        // Array com 5 notas
        double[] notas = { 7.5, 8.0, 6.5, 9.5, 5.5 };

        // Soma todas as notas e divide pelo tamanho para obter a média
        double media = notas.Sum() / notas.Length;

        // Encontra a maior nota usando LINQ
        double maior = notas.Max();

        // Exibe com uma casa decimal
        Console.WriteLine($"Média: {media:F1}");
        Console.WriteLine($"Maior nota: {maior:F1}");
    }
}

Passo a passo

  1. Declaramos double[] notas com 5 valores. O array tem tamanho fixo e já é inicializado com os valores entre chaves.
  2. notas.Sum() percorre o array e soma todos os elementos. notas.Length retorna o tamanho (5). A divisão gera a média.
  3. notas.Max() retorna o maior valor do array. Ambos os métodos vêm do LINQ (using System.Linq;).
  4. Usamos interpolação de string com :F1 para formatar com uma casa decimal.
  5. O resultado é impresso no console.

Por que funciona

Arrays armazenam elementos do mesmo tipo em posições contíguas. Métodos de extensão do LINQ, como Sum e Max, funcionam em qualquer coleção que implemente IEnumerable<T>, incluindo arrays. Assim, podemos calcular estatísticas simples sem escrever laços manualmente.

Erros comuns

  • Esquecer using System.Linq;: sem ele, Sum e Max não são reconhecidos e o código não compila. Corrija adicionando a diretiva no topo.
  • Dividir por notas.Count: arrays não têm Count, apenas Length. Usar Count causa erro de compilação.
  • Formatar com :F2: isso mostraria duas casas decimais, diferente do esperado. Use :F1.

Outra forma de resolver

Percorrer o array com um laço for e calcular soma e maior manualmente:

double soma = 0, maior = notas[0];
for (int i = 0; i < notas.Length; i++)
{
    soma += notas[i];
    if (notas[i] > maior) maior = notas[i];
}
double media = soma / notas.Length;

Essa abordagem é preferível se você não quiser depender do LINQ ou precisar de mais controle sobre a iteração.

Saída esperada

Média: 7,4
Maior nota: 9,5