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>
#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;
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;
}