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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con el operador de modulo(%) en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con el operador de modulo(%) en C  (Leído 2,214 veces)
fafafa01

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Problema con el operador de modulo(%) en C
« en: 9 Enero 2017, 21:19 pm »

Buenas escribo el siguiente codigo en c:

Código
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. int c,i;
  5. for(i=0;i<=8;i++)
  6. printf("el modulo entre %d y 8 es: %d\n",i,i%8);
  7. return 0;
  8. }
  9.  

y lo que me sale es esto:

el modulo entre 0 y 8 es: 0
el modulo entre 1 y 8 es: 1
el modulo entre 2 y 8 es: 2
el modulo entre 3 y 8 es: 3
el modulo entre 4 y 8 es: 4
el modulo entre 5 y 8 es: 5
el modulo entre 6 y 8 es: 6
el modulo entre 7 y 8 es: 7
el modulo entre 8 y 8 es: 0

pero creo que tendría que ser esto:
el modulo entre 0 y 8 es: 0
el modulo entre 1 y 8 es: 1
el modulo entre 2 y 8 es: 2
el modulo entre 3 y 8 es: 3
el modulo entre 4 y 8 es: 5
el modulo entre 5 y 8 es: 6
el modulo entre 6 y 8 es: 7
el modulo entre 7 y 8 es: 8
el modulo entre 8 y 8 es: 0

que seria el primer numero después de la coma


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Problema con el operador de modulo(%) en C
« Respuesta #1 en: 9 Enero 2017, 21:39 pm »

No entiendo la lógica con que haces la cuenta. De todas formas te falta el 4.

Recuerda:
Dividendo = divisor * cociente + resto.

Mientras dividendo sea menor que el divisor el cociente es 0 y el resto, por tanto, debe ser igual al dividendo:

7 = 0 * 8 + 7


« Última modificación: 9 Enero 2017, 21:43 pm por MAFUS » En línea

fafafa01

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Re: Problema con el operador de modulo(%) en C
« Respuesta #2 en: 9 Enero 2017, 21:46 pm »

3/8=0,375 por lo tanto 4%8 debe ser 3
4/8=0,5 por lo tanto 4%8 debe ser 5
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Problema con el operador de modulo(%) en C
« Respuesta #3 en: 9 Enero 2017, 21:58 pm »

Confundes el resto con el cociente.

Lo verás por pasos:
1. Cociente 4 / 8 = 0     |     Resto: 4 - (8 * 0) = 4
2. Como sigue quedando resto continuo operando. Como ya voy a ir más allá de las unidades pongo la coma decimal: Cociente = 0,
3. Como voy a calcular el número una posición a la derecha de la coma decimal tendré que hacer el resto que me quedó 10 veces más grande, porqué estoy en base 10, (resto * 10 = 4 * 10 = 40) y opero:
4. Operación 40 / 8 = 5     |     Resto: 40 - (8 * 5) = 0
5. Incluyo el resultado de Operación al que ya tenía de Cociente. Cociente = 0,5
6. El resto calculado es 0. He terminado la operación de división.
« Última modificación: 9 Enero 2017, 22:08 pm por MAFUS » En línea

fafafa01

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Re: Problema con el operador de modulo(%) en C
« Respuesta #4 en: 9 Enero 2017, 22:00 pm »

gracias!!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con operador max(int,int); [Solucionado]
Java
Debci 2 3,076 Último mensaje 22 Mayo 2009, 15:37 pm
por Debci
problema con el operador condicional ? en C
Programación C/C++
higor24 3 3,840 Último mensaje 15 Noviembre 2010, 21:17 pm
por higor24
operador de modulo
Programación C/C++
urvreak 6 3,482 Último mensaje 28 Enero 2011, 22:42 pm
por urvreak
Problema con la sobrecarga del operador <<
Programación C/C++
Lord_Lobotomi 2 2,438 Último mensaje 5 Diciembre 2011, 19:36 pm
por Lord_Lobotomi
Problema operador asignación y operador asignación [struct] c++
Programación C/C++
luiggy2 2 3,071 Último mensaje 16 Octubre 2013, 23:35 pm
por luiggy2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines