Lista de Exercícios — Arrays em C#
Esta lista introduz o conceito de array: uma estrutura que armazena vários valores do mesmo tipo em posições numeradas. Os exercícios estão organizados em pares — o primeiro de cada par apresenta um conceito novo de forma direta; o segundo aplica esse mesmo conceito em um problema mais elaborado.
Selecione um exercício no menu lateral ou abaixo para começar.
Exercício 01 — Radiação em Chernobyl
Após o acidente de Chernobyl, ocorrido em 26 de abril de 1986, equipes passaram a registrar diariamente indicadores de radiação para acompanhar a evolução da contaminação ao longo dos primeiros dias. Em 2026, o acidente completa 40 anos.
Declare um array de inteiros com os indicadores de radiação dos 10 primeiros dias
após o acidente, em microroentgens por hora (uR/h):
320, 280, 250, 210, 190, 170, 150, 140, 130, 120.
int[] radiacao = { 320, 280, 250, 210, 190, 170, 150, 140, 130, 120 };
a) Exiba no console:
- O indicador de radiação do primeiro dia.
- O indicador de radiação do terceiro dia.
- O indicador de radiação do último dia — use a propriedade
Lengthpara calcular o índice, sem escrever o número9diretamente no código.
Saída esperada — letra a
Primeiro dia: 320 uR/h
Terceiro dia: 250 uR/h
Último dia: 120 uR/h
O primeiro elemento está no índice 0 e o terceiro está no índice
2. Para o último, use radiacao.Length - 1.
Console.WriteLine($"Primeiro dia: {radiacao[0]} uR/h");
Console.WriteLine($"Terceiro dia: {radiacao[2]} uR/h");
Console.WriteLine($"Último dia: {radiacao[radiacao.Length - 1]} uR/h");
b) Exiba a radiação registrada em todos os dias.
Saída esperada — letra b
Dia 1: 320 uR/h
Dia 2: 280 uR/h
Dia 3: 250 uR/h
Dia 4: 210 uR/h
Dia 5: 190 uR/h
Dia 6: 170 uR/h
Dia 7: 150 uR/h
Dia 8: 140 uR/h
Dia 9: 130 uR/h
Dia 10: 120 uR/h
Use um for crescente começando em 0 e indo enquanto
i < radiacao.Length. Para mostrar o número do dia, use
i + 1.
for (int i = 0; i < radiacao.Length; i++)
{
Console.WriteLine($"Dia {i + 1}: {radiacao[i]} uR/h");
}
c) Exiba as radiações de trás para frente, começando pelo último dia e terminando no primeiro.
Saída esperada — letra c
Dia 10: 120 uR/h
Dia 9: 130 uR/h
Dia 8: 140 uR/h
Dia 7: 150 uR/h
Dia 6: 170 uR/h
Dia 5: 190 uR/h
Dia 4: 210 uR/h
Dia 3: 250 uR/h
Dia 2: 280 uR/h
Dia 1: 320 uR/h
Use um for decrescente. Ele começa em
radiacao.Length - 1, continua enquanto i >= 0
e diminui com i--.
| Índice | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Valor | 320 | 280 | 250 | 210 | 190 | 170 | 150 | 140 | 130 | 120 | não existe |
Este vetor tem radiacao.Length == 10, mas seus índices vão de
0 até 9. Por isso o último elemento é
radiacao[radiacao.Length - 1], isto é,
radiacao[9]. A posição radiacao[10] não existe.
for (int i = radiacao.Length - 1; i >= 0; i--)
{
Console.WriteLine($"Dia {i + 1}: {radiacao[i]} uR/h");
}
Exercício 02 — Média de consumo
A Organização das Nações Unidas reconhece que uma pessoa precisa de aproximadamente 50 a 100 litros de água por dia para usos pessoais e domésticos básicos, como beber, cozinhar e manter a higiene.
Um laboratório quer acompanhar o consumo diário de água de um equipamento ao longo de 5 dias.
Leia do usuário 5 valores reais representando o consumo em litros de
cada dia e armazene-os em um array de double. Em seguida, percorra o array
com um for para calcular a soma dos valores e exiba a média ao final.
Exemplo de Entrada e Saída
Entrada:
Dia 1: 12.5
Dia 2: 10.0
Dia 3: 11.5
Dia 4: 13.0
Dia 5: 9.0
Saída:
Média: 11.2 litros
Use dois for: o primeiro para preencher o array lendo cada valor
informado pelo usuário; o segundo para percorrer o array acumulando a soma.
A média é a soma dividida por consumo.Length.
Tanto a soma quanto a média devem ser double para preservar as
casas decimais.
declarar array consumo[5]
para i de 0 até 4
ler consumo[i]
soma = 0
para i de 0 até 4
soma = soma + consumo[i]
media = soma / consumo.Length
exibir "Média: " + media
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
double[] consumo = new double[5];
for (int i = 0; i < consumo.Length; i++)
{
Console.Write("Dia " + (i + 1) + ": ");
consumo[i] = Convert.ToDouble(Console.ReadLine());
}
double soma = 0;
for (int i = 0; i < consumo.Length; i++)
{
soma += consumo[i];
}
double media = soma / consumo.Length;
Console.WriteLine("Média: " + media + " litros");
Exercício 03 — Maior nota de redação
Uma equipe está analisando as últimas 6 notas de redação do ENEM corrigidas em um grupo de candidatos.
Leia 6 números inteiros representando essas notas e armazene-os em um array. Em seguida, percorra o array para encontrar e exibir a maior nota de redação.
Inicialize a variável maior com o primeiro elemento do array antes
de entrar no laço.
Exemplo de Entrada e Saída
Entrada:
Nota 1: 760
Nota 2: 840
Nota 3: 920
Nota 4: 680
Nota 5: 880
Nota 6: 960
Saída:
Maior nota da redação: 960
Inicialize maior = notas[0]. Percorra o array a partir do índice
1 (o índice 0 já foi usado como valor inicial). Para cada elemento,
se ele for maior do que maior, atualize maior.
Ao término do laço, maior conterá o maior valor do array.
ler notas[0..5]
maior = notas[0]
para i de 1 até 5
se notas[i] > maior
maior = notas[i]
exibir "Maior nota da redação: " + maior
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
int[] notas = new int[6];
for (int i = 0; i < notas.Length; i++)
{
Console.Write("Nota " + (i + 1) + ": ");
notas[i] = Convert.ToInt32(Console.ReadLine());
}
int maior = notas[0];
for (int i = 1; i < notas.Length; i++)
{
if (notas[i] > maior)
{
maior = notas[i];
}
}
Console.WriteLine("Maior nota da redação: " + maior);
Exercício 04 — Time campeão
Considere os vetores:
string[] nomes = { "Flamengo", "Palmeiras", "Atlético-MG", "Grêmio" };
int[] pontos = { 71, 68, 75, 60 };
Cada posição representa um time e sua pontuação no campeonato. Ao final, exiba o nome e a pontuação do time em primeiro lugar.
Em vez de guardar apenas o maior valor, guarde o índice da posição onde ele se encontra — assim você pode recuperar tanto a pontuação quanto o nome correspondente.
Exemplo de Entrada e Saída
Vetores:
Flamengo / 71 Palmeiras / 68 Atlético-MG / 75 Grêmio / 60
Saída:
Campeão: Atlético-MG com 75 pontos
Este problema é muito parecido com o exercício anterior: você também precisa percorrer os valores para descobrir qual é o maior. A diferença é que agora não basta guardar apenas a pontuação; é necessário ter dois vetores para relacionar o nome do time com seus pontos.
Use dois arrays com o mesmo tamanho: string[] nomes e
int[] pontos. O elemento de índice i em cada array
corresponde ao mesmo time.
Para encontrar o campeão, não guarde o maior valor — guarde o índice
do maior (indMaior). Comece com indMaior = 0 e
atualize sempre que encontrar uma pontuação maior do que
pontos[indMaior].
indMaior = 0
para i de 1 até 3
se pontos[i] > pontos[indMaior]
indMaior = i
exibir "Campeão: " + nomes[indMaior] + " com " + pontos[indMaior] + " pontos"
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
string[] nomes = { "Flamengo", "Palmeiras", "Atlético-MG", "Grêmio" };
int[] pontos = { 71, 68, 75, 60 };
int indMaior = 0;
for (int i = 1; i < pontos.Length; i++)
{
if (pontos[i] > pontos[indMaior])
{
indMaior = i;
}
}
Console.WriteLine("Campeão: " + nomes[indMaior] + " com " + pontos[indMaior] + " pontos");
Exercício 05 — Pares e ímpares
Considere o array de inteiros:
int[] numeros = { 12, 7, 4, 9, 10, 13, 8, 5 };
Percorra o array contando quantos elementos são pares e quantos são ímpares. Exiba as duas contagens.
Exemplo de Entrada e Saída
Array: 12, 7, 4, 9, 10, 13, 8, 5
Saída:
Pares: 4
Ímpares: 4
O operador % (resto da divisão) permite verificar a paridade:
se n % 2 == 0, o número é par; caso contrário, é ímpar.
Declare dois contadores iniciados em zero e incremente o correto a cada
iteração do laço.
declarar array numeros com 8 valores
pares = 0
impares = 0
para i de 0 até 7
se numeros[i] % 2 == 0
pares++
senão
impares++
exibir "Pares: " + pares
exibir "Ímpares: " + impares
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
int[] numeros = { 12, 7, 4, 9, 10, 13, 8, 5 };
int pares = 0, impares = 0;
for (int i = 0; i < numeros.Length; i++)
{
if (numeros[i] % 2 == 0)
pares++;
else
impares++;
}
Console.WriteLine("Pares: " + pares);
Console.WriteLine("Ímpares: " + impares);
Exercício 06 — Palíndromo numérico
Leia uma sequência de 6 números inteiros e verifique se ela forma um palíndromo — ou seja, se a sequência lida da esquerda para a direita é idêntica à lida da direita para a esquerda.
Use apenas um laço que percorre a primeira metade do array, comparando cada elemento
v[i] com seu simétrico v[v.Length - 1 - i].
Exemplo de Entrada e Saída — Palíndromo
Entrada: 1 2 3 3 2 1 → Saída: É palíndromo.
Exemplo de Entrada e Saída — Não palíndromo
Entrada: 1 2 3 4 5 6 → Saída: Não é palíndromo.
Comece assumindo que é um palíndromo (bool palindromo = true).
Percorra apenas os índices de 0 até v.Length / 2 - 1
(a primeira metade). Para cada posição i, compare
v[i] com v[v.Length - 1 - i]. Se alguma comparação
falhar, defina palindromo = false e interrompa o laço com
break.
ler v[0..5]
palindromo = verdadeiro
para i de 0 até (v.Length / 2 - 1)
se v[i] != v[v.Length - 1 - i]
palindromo = falso
parar
se palindromo
exibir "É palíndromo."
senão
exibir "Não é palíndromo."
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
int[] v = new int[6];
for (int i = 0; i < v.Length; i++)
{
Console.Write("Número " + (i + 1) + ": ");
v[i] = Convert.ToInt32(Console.ReadLine());
}
bool palindromo = true;
for (int i = 0; i < v.Length / 2; i++)
{
if (v[i] != v[v.Length - 1 - i])
{
palindromo = false;
break;
}
}
if (palindromo)
Console.WriteLine("É palíndromo.");
else
Console.WriteLine("Não é palíndromo.");
Exercício 07 — Histograma de notas
Leia 10 notas inteiras de 0 a 10. Use um array de 4 posições para contar quantas notas caem em cada faixa de desempenho:
contagem[0]— faixa 0–4 (Insuficiente)contagem[1]— faixa 5–6 (Regular)contagem[2]— faixa 7–8 (Bom)contagem[3]— faixa 9–10 (Ótimo)
int[] contagem = { 0, 0, 0, 0 };
A cada nota lida, basta somar 1 na posição correta desse vetor.
Não é necessário criar um segundo array. Ao final, exiba a quantidade de notas
em cada faixa com o rótulo correspondente.
Exemplo de Entrada e Saída
Entrada: 10, 3, 7, 5, 8, 2, 9, 6, 7, 10
Saída:
Insuficiente (0–4): 2
Regular (5–6): 2
Bom (7–8): 3
Ótimo (9–10): 3
Um array pode funcionar como uma série de contadores. Declare
int[] contagem = { 0, 0, 0, 0 }. Para cada nota lida, use
um if/else if para decidir qual posição incrementar.
Verifique a faixa mais alta primeiro (>= 9) e desça até a
mais baixa, ou use faixas bem delimitadas com &&.
int[] contagem = new int[4] // zerado automaticamente
para cada nota lida
se nota <= 4 → contagem[0]++
se nota <= 6 → contagem[1]++
se nota <= 8 → contagem[2]++
senão → contagem[3]++
exibir contagem[0], contagem[1], contagem[2], contagem[3]
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
int[] contagem = new int[4];
for (int i = 0; i < 10; i++)
{
Console.Write("Nota " + (i + 1) + ": ");
int nota = Convert.ToInt32(Console.ReadLine());
if (nota <= 4)
contagem[0]++;
else if (nota <= 6)
contagem[1]++;
else if (nota <= 8)
contagem[2]++;
else
contagem[3]++;
}
Console.WriteLine("Insuficiente (0–4): " + contagem[0]);
Console.WriteLine("Regular (5–6): " + contagem[1]);
Console.WriteLine("Bom (7–8): " + contagem[2]);
Console.WriteLine("Ótimo (9–10): " + contagem[3]);
Exercício 08 — Potências de 2
Construa um array de 8 posições onde o primeiro elemento vale 2 e cada
elemento seguinte é o dobro do anterior: pot[i] = pot[i-1] * 2.
A ideia é inicializar explicitamente apenas o primeiro elemento:
pot[0] = 2. Os demais elementos do vetor serão calculados posteriormente,
dentro do for, usando sempre o valor da posição anterior.
Exiba todos os valores do array. Em seguida, percorra-o novamente para encontrar e exibir o primeiro elemento que ultrapassa 100 e sua posição (índice).
Saída esperada
pot[0] = 2
pot[1] = 4
pot[2] = 8
pot[3] = 16
pot[4] = 32
pot[5] = 64
pot[6] = 128
pot[7] = 256
Primeiro acima de 100: 128 (posição 6)
A chave deste exercício é que cada elemento depende do elemento anterior:
pot[i] = pot[i - 1] * 2. Por isso, atribua
pot[0] = 2 antes do laço e comece o for a partir
de i = 1. Sem o array, não seria possível calcular
pot[6] sem ter calculado e guardado todos os anteriores.
pot[0] = 2
para i de 1 até 7
pot[i] = pot[i - 1] * 2
para i de 0 até 7
exibir "pot[" + i + "] = " + pot[i]
para i de 0 até 7
se pot[i] > 100
exibir "Primeiro acima de 100: " + pot[i] + " (posição " + i + ")"
parar
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
int[] pot = new int[8];
pot[0] = 2;
for (int i = 1; i < pot.Length; i++)
{
pot[i] = pot[i - 1] * 2;
}
for (int i = 0; i < pot.Length; i++)
{
Console.WriteLine("pot[" + i + "] = " + pot[i]);
}
for (int i = 0; i < pot.Length; i++)
{
if (pot[i] > 100)
{
Console.WriteLine("Primeiro acima de 100: " + pot[i] + " (posição " + i + ")");
break;
}
}
Exercício 09 — Pokémon acima da média
Considere os seguintes vetores paralelos, contendo nomes de Pokémon e seus respectivos HPs (pontos de vida):
string[] nomes =
{
"Bulbasaur", "Charizard", "Pikachu", "Jigglypuff", "Snorlax",
"Gengar", "Machamp", "Onix", "Lapras", "Mewtwo"
};
int[] hp =
{
45, 78, 35, 115, 160,
60, 90, 35, 130, 106
};
Calcule a média de HP do grupo e, em seguida, exiba o nome e o HP de todos os Pokémon que ficaram acima da média.
Este exercício exige necessariamente dois percursos: o primeiro para calcular a média (impossível sem ter todos os HPs), o segundo para comparar cada valor com ela.
Exemplo de Entrada e Saída
Vetores:
Bulbasaur / 45 Charizard / 78 Pikachu / 35 Jigglypuff / 115 Snorlax / 160
Gengar / 60 Machamp / 90 Onix / 35 Lapras / 130 Mewtwo / 106
Saída:
Média de HP: 85.4
Acima da média:
Jigglypuff (115)
Snorlax (160)
Machamp (90)
Lapras (130)
Mewtwo (106)
A média só pode ser calculada depois que todos os HPs forem considerados. Por isso o array é indispensável: você precisa guardar os valores para fazer a segunda varredura de comparação.
Use dois arrays paralelos: nomes[i] e hp[i]
guardam os dados do mesmo Pokémon. Ao encontrar um HP acima da média,
use o mesmo índice i para acessar o nome correspondente.
declarar vetores nomes e hp
soma = 0
para i de 0 até hp.Length - 1 → soma += hp[i]
media = soma / hp.Length
exibir "Média de HP: " + media
para i de 0 até hp.Length - 1
se hp[i] > media
exibir nomes[i] + " (" + hp[i] + ")"
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
string[] nomes = { "Bulbasaur", "Charizard", "Pikachu", "Jigglypuff", "Snorlax",
"Gengar", "Machamp", "Onix", "Lapras", "Mewtwo" };
int[] hp = { 45, 78, 35, 115, 160, 60, 90, 35, 130, 106 };
double soma = 0;
for (int i = 0; i < hp.Length; i++)
soma += hp[i];
double media = soma / hp.Length;
Console.WriteLine("Média de HP: " + media);
Console.WriteLine("Acima da média:");
for (int i = 0; i < nomes.Length; i++)
{
if (hp[i] > media)
Console.WriteLine(" " + nomes[i] + " (" + hp[i] + ")");
}
Exercício 10 — Rotação circular
Leia 5 inteiros e armazene-os em um array. Aplique uma rotação circular à direita: o último elemento passa a ocupar a primeira posição e todos os outros avançam uma posição.
Exiba o array antes e depois da rotação. Não use um segundo array — resolva
guardando o último elemento em uma variável auxiliar, deslocando os elementos
dentro do próprio array e, ao final, colocando o valor salvo na posição [0].
Exemplos rápidos de uma rotação à direita
Visualização da rotação circular à direita
Estado inicialExemplo de Entrada e Saída
Entrada: 10 20 30 40 50
Saída:
Antes: 10 20 30 40 50
Depois: 50 10 20 30 40
O deslocamento deve ser feito da direita para a esquerda: se você percorrer da esquerda para a direita, cada elemento sobrescreveria o próximo antes de ser copiado. O laço correto é:
for (int i = v.Length - 1; i > 0; i--)
{
v[i] = v[i - 1];
}
Antes desse laço, salve v[v.Length - 1] em uma variável.
Depois do laço, coloque essa variável em v[0].
ler v[0..4]
exibir "Antes: " + v
ultimo = v[v.Length - 1]
para i de (v.Length - 1) até 1, decrementando
v[i] = v[i - 1]
v[0] = ultimo
exibir "Depois: " + v
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
int[] v = new int[5];
for (int i = 0; i < v.Length; i++)
{
Console.Write("Elemento " + (i + 1) + ": ");
v[i] = Convert.ToInt32(Console.ReadLine());
}
Console.Write("Antes: ");
for (int i = 0; i < v.Length; i++)
Console.Write(v[i] + " ");
Console.WriteLine();
int ultimo = v[v.Length - 1];
for (int i = v.Length - 1; i > 0; i--)
{
v[i] = v[i - 1];
}
v[0] = ultimo;
Console.Write("Depois: ");
for (int i = 0; i < v.Length; i++)
Console.Write(v[i] + " ");
Console.WriteLine();
Exercício 11 — Intercalar dois arrays
Considere os arrays de tamanho 4:
int[] a = { 1, 3, 5, 7 };
int[] b = { 2, 4, 6, 8 };
Construa um terceiro array de 8 posições que intercale os elementos
dos dois: c[0]=a[0], c[1]=b[0], c[2]=a[1],
c[3]=b[1], e assim por diante.
Use a relação c[2*i] = a[i] e c[2*i+1] = b[i] para
calcular o índice de destino dentro de um único for.
Visualização dos índices no array intercalado
Para i = 0: a[0] vai para c[0] e b[0] vai para c[1].
Exemplo de Entrada e Saída
A: 1 3 5 7 B: 2 4 6 8
Saída:
Intercalado: 1 2 3 4 5 6 7 8
Para cada índice i (de 0 a 3), o elemento a[i]
vai para a posição par do resultado e b[i] vai para a posição
seguinte (ímpar). As posições pares são 0, 2, 4, 6 e as
ímpares 1, 3, 5, 7 — exatamente 2*i e
2*i+1.
declarar a[4] e b[4]
declarar c[8]
para i de 0 até 3
c[2 * i] = a[i]
c[2 * i + 1] = b[i]
exibir "Intercalado: " + c
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
int[] a = { 1, 3, 5, 7 };
int[] b = { 2, 4, 6, 8 };
int[] c = new int[8];
for (int i = 0; i < 4; i++)
{
c[2 * i] = a[i];
c[2 * i + 1] = b[i];
}
Console.Write("Intercalado: ");
for (int i = 0; i < c.Length; i++)
Console.Write(c[i] + " ");
Console.WriteLine();
Exercício 12 — Detectar duplicata
Leia 7 inteiros. Verifique se algum valor aparece mais de uma vez no array. Se houver repetição, exiba o primeiro valor duplicado encontrado; caso contrário, informe que todos os valores são únicos.
Use dois for aninhados: o externo percorre cada elemento v[i];
o interno percorre apenas os elementos seguintes v[j] com
j > i, comparando os dois. Ao encontrar a primeira duplicata,
interrompa ambos os laços.
Exemplo — com duplicata
Entrada: 5 3 8 3 1 7 2 → Saída: Valor repetido: 3
Exemplo — sem duplicata
Entrada: 5 3 8 4 1 7 2 → Saída: Nenhum valor repetido.
Para cada posição i, compare v[i] com todas as
posições j onde j > i. Iniciar j
em i + 1 evita comparar um elemento consigo mesmo e evita
checar o mesmo par duas vezes.
Use uma variável bool encontrou = false. Ao encontrar a
primeira duplicata, defina encontrou = true, salve o valor
e use break para sair do laço interno. Use
&& !encontrou na condição do laço externo para sair
também dele.
ler v[0..6]
encontrou = falso
duplicata = 0
para i de 0 até 6, enquanto !encontrou
para j de (i+1) até 6
se v[i] == v[j]
duplicata = v[i]
encontrou = verdadeiro
parar laço interno
se encontrou
exibir "Valor repetido: " + duplicata
senão
exibir "Nenhum valor repetido."
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
int[] v = new int[7];
for (int i = 0; i < v.Length; i++)
{
Console.Write("Número " + (i + 1) + ": ");
v[i] = Convert.ToInt32(Console.ReadLine());
}
bool encontrou = false;
int duplicata = 0;
for (int i = 0; i < v.Length && !encontrou; i++)
{
for (int j = i + 1; j < v.Length; j++)
{
if (v[i] == v[j])
{
duplicata = v[i];
encontrou = true;
break;
}
}
}
if (encontrou)
Console.WriteLine("Valor repetido: " + duplicata);
else
Console.WriteLine("Nenhum valor repetido.");
Exercício 13 — Fibonacci
Construa um array de 10 posições com os primeiros 10 números da
sequência de Fibonacci: fib[0] = 1, fib[1] = 1 e, para
os demais, fib[i] = fib[i-1] + fib[i-2].
Exiba todos os valores em uma linha, separados por espaço. Em seguida, percorra o array e conte quantos elementos são menores que 30.
Saída esperada
Sequência: 1 1 2 3 5 8 13 21 34 55
Menores que 30: 8
Para calcular fib[i] você precisa de dois valores já
guardados: fib[i-1] e fib[i-2]. Por isso o laço
de construção começa em i = 2, após os dois valores iniciais
serem atribuídos manualmente. Sem o array armazenando os elementos
anteriores, o cálculo seria impossível.
fib[0] = 1
fib[1] = 1
para i de 2 até 9
fib[i] = fib[i - 1] + fib[i - 2]
exibir "Sequência: "
para i de 0 até 9
exibir fib[i] + " "
contador = 0
para i de 0 até 9
se fib[i] < 30 → contador++
exibir "Menores que 30: " + contador
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
int[] fib = new int[10];
fib[0] = 1;
fib[1] = 1;
for (int i = 2; i < fib.Length; i++)
{
fib[i] = fib[i - 1] + fib[i - 2];
}
Console.Write("Sequência: ");
for (int i = 0; i < fib.Length; i++)
{
Console.Write(fib[i] + " ");
}
Console.WriteLine();
int contador = 0;
for (int i = 0; i < fib.Length; i++)
{
if (fib[i] < 30) contador++;
}
Console.WriteLine("Menores que 30: " + contador);


