novato programacion en c, duda

Iniciado por scarguss, 10 Noviembre 2011, 21:10 PM

0 Miembros y 1 Visitante están viendo este tema.

scarguss

En el siguiente problema:

2 Escriba un programa en C que encuentre e imprima todos los numeros de
4 cifras signi cativas que cumplan la condicion de que la suma de las cifras de
posicion impar es igual a la suma de las cifras de posicion par.
Solucion:
#include <stdio.h>

main(){

/*declaracion de variables*/

int num;
int cifras_pares;
int cifras_impares;
/*codigo*/

for (num=1000;num<10000;num++){

cifras_pares=(num/1000);
cifras_impares=((num%1000)/100);
cifras_pares+=((num%100)/10);
cifras_impares+=(num%10);

if (cifras_pares==cifras_impares){

printf("%d\n",num);
}/*fin if*/
}/*fin for*/
}/*fin main*/


¿Porque, por ejemplo con esto: cifras_impares=((num%1000)/100);
se refiere a la posicion de las centenas del numero?
Saludos

rir3760

Cita de: scarguss en 10 Noviembre 2011, 21:10 PM¿Porque, por ejemplo con esto: cifras_impares=((num%1000)/100);
se refiere a la posicion de las centenas del numero?
Porque asi separas el digito de las centenas.

Tomemos por ejemplo el valor 6789. Al dividirlo entre 1000 el modulo o residuo es 789. Y al dividir 789 entre 100 el resultado  es 7.

Los demas casos son similares.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language