Faça um programa que lê uma seqüência de números naturais do teclado (terminada por zero) e imprime a quantidade de números pares e ímpares da seqüência. Imprima também o maior e o menor ímpar e o maior e o menor par encontrados na seqüência.

Passo 1

O exercício pede um programa que leia números naturais até encontrar zero e depois informe: quantos são pares e ímpares, e qual o maior e o menor de cada tipo. Para resolver isso, precisamos usar um laço de repetição que leia cada número, condicionais para verificar se o número é par ou ímpar, contadores para quantidades e variáveis para acompanhar o maior e o menor de cada categoria.

Passo 2

Comece inicializando: contador_par = 0, contador_impar = 0; maior_par = -∞, menor_par = +∞; maior_impar = -∞, menor_impar = +∞.

Passo 3

Dentro de um loop “enquanto true”: leia o número; se for zero, saia do loop; senão verifique numero % 2 == 0. Se for par, incremente contador_par e atualize maior_par e menor_par. Se for ímpar, incremente contador_impar e atualize maior_impar e menor_impar.

Passo 4

Depois que o loop terminar, você já terá as quantidades e os quatro valores (maior/menor par e maior/menor ímpar). Só falta imprimir tudo de forma organizada. Lembre de tratar o caso em que não apareceu nenhum número par ou ímpar (por exemplo, se contador_par for zero, você pode indicar que não houve pares).

Resposta

#include <stdio.h>
#include <limits.h>
int main() {
int numero;
int contador_par = 0, contador_impar = 0;
int maior_par = INT_MIN, menor_par = INT_MAX;
int maior_impar = INT_MIN, menor_impar = INT_MAX;
while (1) {
    printf("Digite um numero (0 para terminar): ");
    scanf("%d", &numero);
    if (numero == 0)
        break;

    if (numero % 2 == 0) {
        contador_par++;
        if (numero > maior_par) maior_par = numero;
        if (numero < menor_par) menor_par = numero;
    } else {
        contador_impar++;
        if (numero > maior_impar) maior_impar = numero;
        if (numero < menor_impar) menor_impar = numero;
    }
}

printf("Quantidade de pares: %d\n", contador_par);
if (contador_par > 0)
    printf("Maior par: %d, Menor par: %d\n", maior_par, menor_par);
else
    printf("Nenhum numero par foi lido.\n");

printf("Quantidade de impares: %d\n", contador_impar);
if (contador_impar > 0)
    printf("Maior impar: %d, Menor impar: %d\n", maior_impar, menor_impar);
else
    printf("Nenhum numero impar foi lido.\n");

return 0;
}

Exercícios relacionados