Programa en C que cuenta dígitos pares e impares en un número entero positivo, validando la entrada y mostrando resultados en consola.
#include <stdio.h>
int main() {
int numero = -1;
int pari = 0;
int dispari = 0;
// Solicita al usuario un número entero positivo
while (numero <= 0) {
printf("Inserisci un numero intero positivo: ");
int result = scanf("%d", &numero);
// Limpieza del buffer en caso de entrada no válida
if (result != 1) {
// Lee y descarta caracteres hasta el salto de línea
int c;
while ((c = getchar()) != '\n' && c != EOF) { }
printf("Entrada no válida. Inténtalo de nuevo.\n");
numero = -1; // reiniciar para continuar el ciclo
continue;
}
if (numero <= 0) {
printf("El número debe ser positivo. Inténtalo de nuevo.\n");
}
}
int temp = numero;
// Cuenta dígitos pares e impares
while (temp > 0) {
int cifra = temp % 10; // Extrae el último dígito
if (cifra % 2 == 0) {
pari++;
} else {
dispari++;
}
temp /= 10; // Elimina el último dígito
}
// Imprime resultados
printf("El número %d contiene:\n", numero);
printf("- Dígitos pares: %d\n", pari);
printf("- Dígitos impares: %d\n", dispari);
return 0;
}Hardware: No se requieren componentes de hardware específicos, el programa se ejecuta en PC o entorno compatible con C.
Software: Compilador estándar de C (gcc, clang, etc.)
Configuración: No se requieren librerías externas, utiliza solo la librería estándar <stdio.h>
Entrada: Lectura desde teclado mediante scanf
Salida: Impresión en consola mediante printf