Lista de Exercícios — for
Esta página reúne exercícios sobre a estrutura de repetição for em C#. Leia cada enunciado com atenção e desenvolva os programas conforme solicitado.
Selecione um exercício no menu lateral ou abaixo para começar.
Exercício 01 — Contagem crescente
Escreva um programa em C# que receba um número inteiro positivo N e exiba na tela todos os números de 1 até N, um por linha.
Caso o valor informado seja menor ou igual a zero, o programa deve informar: "Entrada inválida".
Exemplo de Entrada e Saída
Entrada:
N: 5
Saída:
1
2
3
4
5
Entrada:
N: 0
Saída:
Entrada inválida
Use um laço for que comece em 1 e vá até N, incrementando 1 a cada passo. Antes de entrar no laço, valide se N é positivo.
No cabeçalho for (int i = 1; i <= n; i++), o trecho i++ é equivalente a i = i + 1. Isso significa que, ao fim de cada repetição, a variável i aumenta uma unidade.
Organize a lógica assim:
ler N
se (N <= 0)
exibir "Entrada inválida"
senão
para i de 1 até N
exibir i
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
Leia N e converta para inteiro:
Console.Write("N: ");
int n = Convert.ToInt32(Console.ReadLine());
Verifique se N é positivo antes de continuar:
if (n <= 0)
{
Console.WriteLine("Entrada inválida");
}
No bloco else, use o for para exibir cada número:
else
{
for (int i = 1; i <= n; i++)
{
Console.WriteLine(i);
}
}
Exercício 02 — Números pares no intervalo
Escreva um programa em C# que receba um número inteiro positivo N e exiba todos os números pares entre 1 e N.
Caso o valor informado seja menor ou igual a zero, o programa deve informar: "Entrada inválida".
Exemplo de Entrada e Saída
Entrada:
N: 10
Saída:
2
4
6
8
10
Entrada:
N: -4
Saída:
Entrada inválida
Um número é par quando o resto da divisão por 2 é zero. Você pode verificar isso dentro do laço, ou simplesmente iniciar o laço em 2 e incrementar de 2 em 2 — assim só números pares serão visitados.
Compare com o exercício anterior: lá usamos i++, que é o mesmo que i = i + 1. Aqui usamos i += 2, que equivale a i = i + 2, para visitar apenas os valores pares.
Organize a lógica assim:
ler N
se (N <= 0)
exibir "Entrada inválida"
senão
para i de 2 até N, incrementando 2
exibir i
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
Console.Write("N: ");
int n = Convert.ToInt32(Console.ReadLine());
if (n <= 0)
{
Console.WriteLine("Entrada inválida");
}
No bloco else, inicie o laço em 2 e incremente de 2 em 2:
else
{
for (int i = 2; i <= n; i += 2)
{
Console.WriteLine(i);
}
}
Exercício 03 — Soma dos primeiros números naturais
Escreva um programa em C# que receba um número inteiro positivo N e calcule a soma dos números de 1 até N.
Ao final, o programa deve exibir o valor da soma obtida. Caso o valor informado seja menor ou igual a zero, o programa deve informar: "Entrada inválida".
Exemplo de Entrada e Saída
Entrada:
N: 5
Saída:
Soma = 15
Entrada:
N: 8
Saída:
Soma = 36
Use uma variável acumuladora soma, inicializada em zero. A cada iteração do for, some o valor atual de i a essa variável. Ao sair do laço, soma terá o resultado.
Organize a lógica assim:
ler N
se (N <= 0)
exibir "Entrada inválida"
senão
soma = 0
para i de 1 até N
soma = soma + i
exibir "Soma = " + soma
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
Console.Write("N: ");
int n = Convert.ToInt32(Console.ReadLine());
if (n <= 0)
{
Console.WriteLine("Entrada inválida");
}
Declare e inicialize a variável que vai acumular a soma:
else
{
int soma = 0;
for (int i = 1; i <= n; i++)
{
soma += i;
}
Console.WriteLine("Soma = " + soma);
}
Exercício 04 — Tabuada de um número
Em uma sala de aula, um aluno deseja treinar multiplicação de forma organizada. Escreva um programa em C# que receba um número inteiro e exiba a sua tabuada de 1 até 10.
O programa deve mostrar cada linha no formato: n x i = resultado.
Exemplo de Entrada e Saída
Entrada:
Número: 7
Saída:
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70
O que muda a cada linha da tabuada é o multiplicador, que vai de 1 a 10. Use um for com i indo de 1 a 10 e calcule n * i em cada iteração.
Organize a lógica assim:
ler n
para i de 1 até 10
exibir n + " x " + i + " = " + (n * i)
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
Console.Write("Número: ");
int n = Convert.ToInt32(Console.ReadLine());
Itere de 1 a 10 e exiba cada linha formatada:
for (int i = 1; i <= 10; i++)
{
Console.WriteLine($"{n} x {i} = {n * i}");
}
Exercício 05 — Cálculo de fatorial
Em Matemática, o fatorial de um número natural N é o produto de todos os números inteiros positivos de N até 1. Representamos essa operação com o símbolo !.
A fórmula geral é: N! = N × (N - 1) × (N - 2) × ... × 3 × 2 × 1. Por definição, 0! = 1.
Exemplos matemáticos:
4! = 4 × 3 × 2 × 1 = 24
5! = 5 × 4 × 3 × 2 × 1 = 120
1! = 1
Escreva um programa em C# que receba um número inteiro não negativo
e calcule o seu fatorial, isto é, realize essa multiplicação sucessiva usando uma estrutura
de repetição for.
Caso o valor informado seja negativo, o programa deve informar: "Entrada inválida".
Exemplo de Entrada e Saída
Entrada:
N: 5
Saída:
5! = 120
Entrada:
N: 0
Saída:
0! = 1
Entrada:
N: -3
Saída:
Entrada inválida
O fatorial é calculado multiplicando todos os números de 1 até N. Use um acumulador multiplicativo iniciado em 1 — nunca em 0, pois multiplicar por zero zeraria tudo. Lembre-se: 0! = 1 por definição, então o laço simplesmente não executará nenhuma iteração.
Organize a lógica assim:
ler N
se (N < 0)
exibir "Entrada inválida"
senão
fat = 1
para i de 1 até N
fat = fat * i
exibir N + "! = " + fat
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
Console.Write("N: ");
int n = Convert.ToInt32(Console.ReadLine());
if (n < 0)
{
Console.WriteLine("Entrada inválida");
}
Declare o acumulador com valor inicial 1. Use long para suportar valores grandes:
else
{
long fat = 1;
for (int i = 1; i <= n; i++)
{
fat *= i;
}
Console.WriteLine($"{n}! = {fat}");
}
Exercício 06 — Soma alternada
Escreva um programa em C# que receba um número inteiro positivo N e calcule a soma da série: 1 - 2 + 3 - 4 + 5 - 6 + ... até N
Exemplo de Entrada e Saída
Entrada:
N: 6
Saída:
Soma alternada = -3
Os números ímpares entram somando; os pares entram subtraindo. Você pode decidir isso com um if dentro do for.
ler N
soma = 0
para i de 1 até N
se i é par
soma = soma - i
senão
soma = soma + i
exibir soma
Console.Write("N: ");
int n = Convert.ToInt32(Console.ReadLine());
int soma = 0;
for (int i = 1; i <= n; i++)
{
if (i % 2 == 0)
{
soma -= i;
}
else
{
soma += i;
}
}
Console.WriteLine($"Soma alternada = {soma}");
Exercício 07 — Análise de temperaturas da semana
Uma escola deseja registrar as temperaturas máximas observadas ao longo de vários dias. Escreva um programa em C# que receba a quantidade de dias a serem analisados e, em seguida, leia a temperatura de cada dia.
Ao final, o programa deve informar quantos dias tiveram temperatura acima de 30 graus.
Considere que a quantidade de dias deve ser um inteiro positivo. Caso contrário, o programa deve informar: "Entrada inválida".
Exemplo de Entrada e Saída
Entrada:
Dias: 5
Temperatura 1: 28
Temperatura 2: 31
Temperatura 3: 33
Temperatura 4: 29
Temperatura 5: 35
Saída:
Quantidade de dias acima de 30 graus: 3
Entrada:
Dias: 0
Saída:
Entrada inválida
Você precisa repetir a leitura de temperatura exatamente dias vezes. Use um for controlado pelo número de dias. Dentro do laço, leia a temperatura e verifique se ela é maior que 30. Mantenha um contador de dias quentes.
Organize a lógica assim:
ler dias
se (dias <= 0)
exibir "Entrada inválida"
senão
acima = 0
para i de 1 até dias
ler temperatura
se (temperatura > 30)
acima = acima + 1
exibir "Quantidade de dias acima de 30 graus: " + acima
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
Console.Write("Dias: ");
int dias = Convert.ToInt32(Console.ReadLine());
if (dias <= 0)
{
Console.WriteLine("Entrada inválida");
}
else
{
int acima = 0;
for (int i = 1; i <= dias; i++)
{
Console.Write($"Temperatura {i}: ");
double temp = Convert.ToDouble(Console.ReadLine());
if (temp > 30) acima++;
}
Console.WriteLine("Quantidade de dias acima de 30 graus: " + acima);
}
Exercício 08 — Maior nota da turma
Um professor deseja identificar a maior nota obtida em uma atividade. Escreva um programa em C# que receba a quantidade de alunos e, em seguida, leia a nota de cada um deles.
Ao final, o programa deve exibir:
- A maior nota informada
- O número do aluno que obteve essa nota
Em caso de empate, considere o primeiro aluno que obteve a maior nota. Considere também que a quantidade de alunos deve ser um inteiro positivo. Caso contrário, o programa deve informar: "Entrada inválida".
Exemplo de Entrada e Saída
Entrada:
Alunos: 4
Nota do aluno 1: 7.5
Nota do aluno 2: 9.0
Nota do aluno 3: 8.0
Nota do aluno 4: 9.0
Saída:
Maior nota: 9.0 (Aluno 2)
Entrada:
Alunos: 3
Nota do aluno 1: 6.0
Nota do aluno 2: 5.5
Nota do aluno 3: 8.5
Saída:
Maior nota: 8.5 (Aluno 3)
Mantenha duas variáveis: maior (a maior nota encontrada até agora) e alunoMaior (índice do aluno que a obteve). Inicialize maior com um valor muito pequeno, como -1, para que a primeira nota lida sempre substitua. Compare cada nota com maior: se for estritamente maior, atualize ambas as variáveis.
Organize a lógica assim:
ler alunos
se (alunos <= 0)
exibir "Entrada inválida"
senão
maior = -1
alunoMaior = 0
para i de 1 até alunos
ler nota
se (nota > maior)
maior = nota
alunoMaior = i
exibir "Maior nota: " + maior + " (Aluno " + alunoMaior + ")"
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
Console.Write("Alunos: ");
int alunos = Convert.ToInt32(Console.ReadLine());
if (alunos <= 0)
{
Console.WriteLine("Entrada inválida");
}
else
{
double maior = -1;
int alunoMaior = 0;
for (int i = 1; i <= alunos; i++)
{
Console.Write($"Nota do aluno {i}: ");
double nota = Convert.ToDouble(Console.ReadLine());
if (nota > maior)
{
maior = nota;
alunoMaior = i;
}
}
Console.WriteLine($"Maior nota: {maior} (Aluno {alunoMaior})");
}
Exercício 09 — Coelho mágico e as cenouras
Um coelho mágico encontrou uma cenoura encantada. No primeiro dia, ele possui 1 cenoura. A cada novo dia, a quantidade de cenouras dobra em relação ao dia anterior.
Escreva um programa em C# que receba a quantidade de dias e exiba, para cada dia, quantas cenouras o coelho terá.
A quantidade de dias deve ser um inteiro positivo. Caso contrário, o programa deve informar: "Entrada inválida".
Exemplo de Entrada e Saída
Entrada:
Dias: 5
Saída:
Dia 1: 1 cenoura(s)
Dia 2: 2 cenoura(s)
Dia 3: 4 cenoura(s)
Dia 4: 8 cenoura(s)
Dia 5: 16 cenoura(s)
Entrada:
Dias: 0
Saída:
Entrada inválida
Este exercício introduz uma ideia nova: o próximo valor depende do valor anterior. Você pode guardar a quantidade atual de cenouras em uma variável, começar com 1 e, ao fim de cada repetição, dobrar esse valor.
Organize a lógica assim:
ler dias
se (dias <= 0)
exibir "Entrada inválida"
senão
cenouras = 1
para i de 1 até dias
exibir dia e cenouras
cenouras = cenouras * 2
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
Console.Write("Dias: ");
int dias = Convert.ToInt32(Console.ReadLine());
if (dias <= 0)
{
Console.WriteLine("Entrada inválida");
}
else
{
int cenouras = 1;
for (int i = 1; i <= dias; i++)
{
Console.WriteLine($"Dia {i}: {cenouras} cenoura(s)");
cenouras *= 2;
}
} }
Exercício 10 — Produção mensal de peças
Uma fábrica começou a registrar a produção mensal de uma peça específica. No mês 1, foram produzidas 1 peça. No mês 2, também foi produzida 1 peça.
A partir do mês 3, a quantidade produzida em cada novo mês é igual à soma das produções dos dois meses anteriores.
Escreva um programa em C# que receba a quantidade de meses e exiba a sequência de produção ao longo do tempo. Caso o valor informado seja menor ou igual a zero, o programa deve informar: "Entrada inválida".
Exemplo de Entrada e Saída
Entrada:
Meses: 6
Saída:
Mês 1: 1 peça(s)
Mês 2: 1 peça(s)
Mês 3: 2 peça(s)
Mês 4: 3 peça(s)
Mês 5: 5 peça(s)
Mês 6: 8 peça(s)
Agora o próximo termo depende de dois valores anteriores. Guarde os dois últimos termos em variáveis, calcule o próximo com uma soma e depois atualize as variáveis para a próxima iteração.
Organize a lógica assim:
ler meses
se (meses <= 0)
exibir "Entrada inválida"
senão
anterior = 1
atual = 1
para i de 1 até meses
se i é 1 ou 2
exibir 1
senão
proximo = anterior + atual
exibir proximo
anterior = atual
atual = proximo
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
Console.Write("Meses: ");
int meses = Convert.ToInt32(Console.ReadLine());
if (meses <= 0)
{
Console.WriteLine("Entrada inválida");
}
else
{
int anterior = 1;
int atual = 1;
for (int i = 1; i <= meses; i++)
{
if (i == 1 || i == 2)
{
Console.WriteLine($"Mês {i}: 1 peça(s)");
}
else
{
int proximo = anterior + atual;
Console.WriteLine($"Mês {i}: {proximo} casal(is)");
anterior = atual;
atual = proximo;
}
}
}
Exercício 11 — Escadinha de blocos
Uma equipe de visualização de dados quer montar uma escadinha de blocos. Na primeira linha, ela coloca 1 bloco. Na segunda, 2 blocos. Na terceira, 3 blocos, e assim por diante.
Escreva um programa em C# que receba a altura da escadinha e exiba o seguinte padrão usando o caractere *.
Caso a altura seja menor ou igual a zero, o programa deve informar: "Entrada inválida".
Exemplo de Entrada e Saída
Entrada:
Altura: 4
Saída:
*
* *
* * *
* * * *
Você vai precisar de um for para controlar as linhas e, dentro dele, outro for para controlar quantos blocos devem ser exibidos em cada linha.
Organize a lógica assim:
ler altura
se (altura <= 0)
exibir "Entrada inválida"
senão
para linha de 1 até altura
para coluna de 1 até linha
exibir "* "
pular linha
A solução será revelada em etapas. Tente completar cada passo antes de avançar.
Console.Write("Altura: ");
int altura = Convert.ToInt32(Console.ReadLine());
if (altura <= 0)
{
Console.WriteLine("Entrada inválida");
}
else
{
for (int linha = 1; linha <= altura; linha++)
{
for (int coluna = 1; coluna <= linha; coluna++)
{
Console.Write("* ");
}
Console.WriteLine();
}
}
Exercício 12 — Radar do número premiado
Em uma feira de tecnologia, um sistema analisa números digitados pelo operador, um por vez. O objetivo é encontrar o primeiro número múltiplo de 7.
Escreva um programa em C# que receba a quantidade máxima de números a serem analisados. Em seguida, leia os valores um a um.
Assim que encontrar o primeiro múltiplo de 7, o programa deve exibir o número,
informar em qual tentativa ele foi encontrado e encerrar o laço imediatamente usando
break. Se nenhum múltiplo de 7 aparecer, exiba:
"Nenhum número premiado foi encontrado."
Exemplo de Entrada e Saída
Entrada:
Quantidade: 5
Número 1: 10
Número 2: 13
Número 3: 21
Número 4: 28
Número 5: 30
Saída:
Primeiro múltiplo de 7 encontrado: 21
Tentativa: 3
Você não precisa percorrer todas as leituras se já encontrou o primeiro número desejado. Essa é a situação ideal para usar break.
ler quantidade
encontrou = falso
para i de 1 até quantidade
ler numero
se numero % 7 == 0
exibir numero e tentativa
encontrou = verdadeiro
break
se não encontrou
exibir mensagem final
Console.Write("Quantidade: ");
int quantidade = Convert.ToInt32(Console.ReadLine());
bool encontrou = false;
for (int i = 1; i <= quantidade; i++)
{
Console.Write($"Número {i}: ");
int numero = Convert.ToInt32(Console.ReadLine());
if (numero % 7 == 0)
{
Console.WriteLine($"Primeiro múltiplo de 7 encontrado: {numero}");
Console.WriteLine($"Tentativa: {i}");
encontrou = true;
break;
}
}
if (!encontrou)
{
Console.WriteLine("Nenhum número premiado foi encontrado.");
}


