Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: indict en 20 Octubre 2012, 13:41 pm



Título: programa que muestre centenas más decenas=unidades
Publicado por: indict en 20 Octubre 2012, 13:41 pm
Escribir un programa que muestre todos los números de tres cifras tales
que la suma de las centenas más las decenas sea igual a las unidades.

Como primer condición dado un número abc natural es que
while (abc>=100 && abc<=999)

abc==(a+b=c)

No se que debería poner más para obtener la sucesión.

Gracias por la ayuda


Título: Re: programa que muestre centenas más decenas=unidades
Publicado por: NeoB en 20 Octubre 2012, 14:33 pm
Dime si no es lo que buscas.
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int a, b, c;
  6.  
  7. for (a=0; a<=9; a++)
  8. {
  9. for (b=0; b<=9; b++)
  10. {
  11. for (c=0; c<=9; c++)
  12. {
  13. if ( (a+b) == c )
  14. {
  15. printf("%d%d%d\n", a, b, c);
  16. }
  17. }
  18. }
  19. }
  20. return 0;
  21. }
  22.  


Título: Re: programa que muestre centenas más decenas=unidades
Publicado por: Antiproton en 20 Octubre 2012, 14:51 pm
Si quieres, ademas de como te han dicho, tambien puedes tratarlo como un solo numero.


Código:
#include <stdio.h>

int main(){
int numero;
for (numero = 100; numero <= 999; numero++) {
if ((numero/100 + (numero/10)%10) == numero%10) {
printf("%d\n",numero);
}
}
}

Al tratarse de un entero, por defecto en las divisiones con decimales los trunca.
por tanto,
numero/100 = centenas
(numero/10)%10 = decenas (n/10 = ab, ab%10 = b)
numero%10 = unidades




Título: Re: programa que muestre centenas más decenas=unidades
Publicado por: indict en 21 Octubre 2012, 10:22 am
muchas gracias NeoB y Antiproton por la ayuda :DD


Título: Re: programa que muestre centenas más decenas=unidades
Publicado por: rir3760 en 21 Octubre 2012, 16:00 pm
Considerando que el dígito mas significativo (las centenas) limita las opciones del segundo (las decenas) el programa se puede implementar con dos bucles, de esta forma:
Código
  1. for (i = 1; i <= 9; i++)
  2.   for (j = 0; i + j <= 9; j++)
  3.      printf("%d%d%d\n", i, j, i + j);

Un saludo