Médio C
Soma de números pares até N
Enunciado
Leia um número inteiro N e use um laço for para somar todos os números pares de 1 até N (inclusive). Imprima a soma. Use continue para pular os ímpares.
Requisitos
- Usar
forcomcontinue. - Ler um inteiro
N. - Imprimir apenas a soma final.
Código inicial
#include <stdio.h>
int main(void) {
int n;
scanf("%d", &n);
int soma = 0;
// use for e continue
printf("%d\n", soma);
return 0;
}
Saída esperada
30
Ver dica
Dentro do for, verifique se o número é ímpar com i % 2 != 0 e use continue para pular para a próxima iteração.
Mostrar solução
#include <stdio.h>
int main(void) {
int n;
scanf("%d", &n);
int soma = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
continue; // pula números ímpares
}
soma += i;
}
printf("%d\n", soma);
return 0;
}
Passo a passo
- Incluímos
<stdio.h>para entrada e saída. - Declaramos
ne lemos comscanf. - Inicializamos
somacom 0. - O laço
forpercorre de 1 aténinclusive. - Dentro do laço,
if (i % 2 != 0)testa seié ímpar. - Se for ímpar,
continuesalta para a próxima iteração, ignorandosoma += i. - Se for par,
soma += iacumula o valor. - Após o laço,
printfmostra a soma.
Por que funciona
O continue interrompe a iteração atual e vai para a próxima, permitindo pular os ímpares sem aninhar o código dentro de um else. O laço for garante que todos os números de 1 a n sejam visitados.
Erros comuns
- Colocar
continuefora de um laço: erro de compilação. - Usar
breakem vez decontinue: o laço pararia no primeiro ímpar, somando apenas 0. - Esquecer de incrementar
inofor: laço infinito (aqui oforjá faz isso).
Outra forma de resolver
Sem continue, usando if (i % 2 == 0) { soma += i; }. É mais direto, mas o exercício pede continue.
Saída esperada
30