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
- Declaramos
double[] notascom 5 valores. O array tem tamanho fixo e já é inicializado com os valores entre chaves. notas.Sum()percorre o array e soma todos os elementos.notas.Lengthretorna o tamanho (5). A divisão gera a média.notas.Max()retorna o maior valor do array. Ambos os métodos vêm do LINQ (using System.Linq;).- Usamos interpolação de string com
:F1para formatar com uma casa decimal. - 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,SumeMaxnã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êmCount, apenasLength. UsarCountcausa 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