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
Dime si no es lo que buscas.
#include <stdio.h>
int main()
{
int a, b, c;
for (a=0; a<=9; a++)
{
for (b=0; b<=9; b++)
{
for (c=0; c<=9; c++)
{
if ( (a+b) == c )
{
printf("%d%d%d\n", a, b, c);
}
}
}
}
return 0;
}
Si quieres, ademas de como te han dicho, tambien puedes tratarlo como un solo numero.
#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
muchas gracias NeoB y Antiproton por la ayuda :DD
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:
for (i = 1; i <= 9; i++)
for (j = 0; i + j <= 9; j++)
printf("%d%d%d\n", i, j, i + j);
Un saludo