elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Contador de Digitos Numeros Pares
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Contador de Digitos Numeros Pares  (Leído 8,247 veces)
Seeven

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Contador de Digitos Numeros Pares
« en: 20 Septiembre 2014, 00:27 am »

Buenas, soy nuevo en programación mi consulta es la siguiente, encontre este codigo, lo que hace es contar los digitos ingresados pero solo los digitos pares mas no los impares, y lo que quisiera saber es como funciona el programa, que me lo explicaran sobretodo la parte donde se pone el modulo. Gracias.

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


En línea

T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: Contador de Digitos Numeros Pares
« Respuesta #1 en: 20 Septiembre 2014, 00:50 am »

Código
  1. #include <iostream>
  2. using namespace std;
  3. int main () {
  4.   int a,b,c;
  5.   cout <<"Numero : " ;cin >> a;
  6.   c = 0;
  7.   while (a > 0){
  8.      b = a % 10;
  9.      if (b % 2 == 0){
  10.         c++;}
  11.      a /= 10;
  12.   }
  13.   cout <<"Digitos Pares: "<<c;
  14.   return 0;
  15. }

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=0

El programa que has puesto va dividiendo a entre 10 mientras a>0 para cojer cifra por cifra:
a=45
b = 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


« Última modificación: 20 Septiembre 2014, 00:58 am por T. Collins » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Contador de Digitos Numeros Pares
« Respuesta #2 en: 20 Septiembre 2014, 12:35 pm »

Aunque vaya, bastaría con poner "if(a%2==0)", 'b' sobra.
« Última modificación: 20 Septiembre 2014, 13:19 pm por ivancea96 » En línea

Seeven

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Contador de Digitos Numeros Pares
« Respuesta #3 en: 21 Septiembre 2014, 10:26 am »

muchas gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Problema] Programa para averiguar números pares entre 2 números
Programación Visual Basic
Dreamaker 3 5,620 Último mensaje 21 Mayo 2010, 23:45 pm
por Shell Root
dev c++ arreglos de numeros pares
Programación C/C++
nicolas2696 1 7,131 Último mensaje 23 Junio 2014, 02:58 am
por engel lex
ayuda con numeros pares, pero utilizando funciones
Programación C/C++
razyhook 9 6,268 Último mensaje 6 Agosto 2015, 21:23 pm
por A.I.
[C] Contador de dígitos
Programación C/C++
GGZ 5 2,316 Último mensaje 17 Septiembre 2015, 06:16 am
por engel lex
Contador separando digitos - ayuda! (C++)
Programación C/C++
Federicoide 1 2,284 Último mensaje 20 Febrero 2020, 20:05 pm
por Federicoide
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines