#include <iostream>
using namespace std;
int main () {
int a,b,c;
cout <<"Numero : " ;cin >> a;
c = 0;
while (a > 0){
b = a % 10;
if (b % 2 == 0){
c++;}
a /= 10;
}
cout <<"Digitos Pares: "<<c;
return 0;
}
El módulo (%) funciona así: 7%3 = 1 , 8%4 = 0 se divide el primer numero entre el segundo y el resultado es el resto de la división. 7-3=4 -> 4-3=
1, 8-4=4 -> 4-4=
0El programa que has puesto va dividiendo
a entre 10 mientras a>0 para cojer cifra por cifra:
a=45b = 45 % 10 = 5
if (b % 2 == 0) -> 5 % 2 = 1 entonces no es número par, por lo tanto c (el contador de pares) no se incrementa.
a /= 10 ->
a = a /10 ->
a = 45 / 10 ->
a = 4 (solo se coge la parte entera)
b = 4 % 10 = 4
if (b % 2 == 0) -> 4 % 2 = 0 entonces sí es número par, por lo tanto c (el contador de pares) sí incrementa.
a /= 10 ->
a = a /10 ->
a = 4 / 10 ->
a = 0 como
a es 0 se sale el bucle