Domingo 15 de Diciembre de 2024, 06:55
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Programa de numeros naturales
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Programa de numeros naturales (Leído 1640 veces)
badyalberto
Miembro activo
Mensajes: 77
Programa de numeros naturales
«
en:
Domingo 23 de Noviembre de 2008, 17:48 »
0
Tengo q hacer un programa que me sume todos los numeros naturales menores de 1000 que cumplan esta condicion:
La suma de las unidades mas las centenas es la mitad de les decenes. Ejemplo: 183 cumple la condicion. Indica a mas a mas de la suma total, quales son los numeros que cumplen esta condicion.
Código: Text
#include<stdio.h>
main()
{
int num,unitat=0,sum=0,decenes=0,centenes=0,sumnum=0,i=0;
while (i<=899)
{
i++;
num = 1000 - i;
unitat = num % 10;
sum = sum + unitat;
num = num / 10;
decenes = num % 10;
decenes = decenes / 2;
centenes = num /10;
sum = sum + centenes;
if ((sum == decenes) && (decenes % 2 == 0))
num = 1000 - i;
printf("Els numeros son: %d n",num);
sumnum = sumnum + num;
}
printf("El resutat total es: %d n",sumnum);
getchar();
getchar();
}
eso es lo q tengo yo, pero no se pq los numeros que me salen son el 10,11,12 y asi de bajos y se repite tanto la solucion :s
Tweet
eternity
Miembro activo
Mensajes: 78
Nacionalidad:
Re: Programa de numeros naturales
«
Respuesta #1 en:
Domingo 23 de Noviembre de 2008, 20:19 »
0
Código: C
#include <stdio.h>
#define TRUE 1
#define FALSE 0
typedef
struct
{
int
numero
;
int
unidad
;
int
decena
;
int
centena
;
}
tNumero
;
tNumero descompone
(
int
x
)
{
int
aux
;
tNumero n
;
n.
numero
=
x
;
n.
centena
=
x
/
100
;
aux
=
x
%
100
;
n.
decena
=
aux
/
10
;
aux
=
x
%
10
;
n.
unidad
=
aux
;
return
n
;
}
int
analiza
(
tNumero n
)
{
int
resultado
;
resultado
=
(
n.
centena
+
n.
unidad
)
*
2
;
if
(
resultado
==
n.
decena
)
return
TRUE
;
return
FALSE
;
}
int
main
(
void
)
{
int
numero
;
tNumero n
;
for
(
numero
=
1
;
numero
<
1000
;
numero
++
)
{
n
=
descompone
(
numero
)
;
if
(
analiza
(
n
)
)
printf
(
"%d cumple la condicion!n"
,
n.
numero
)
;
}
return
0
;
}
bueno ahi esta la solucion, te estabas equivocando en la comparacion, lo hice modular espero que lo entiendas cualquiercosa estoy por aqui!
nota: solo imprimo los numero del 1 al 999 que SI cumplen la condicion!
suerte
badyalberto
Miembro activo
Mensajes: 77
Re: Programa de numeros naturales
«
Respuesta #2 en:
Domingo 23 de Noviembre de 2008, 20:42 »
0
la verdad es q asi modular no lo entiendo xDD
eternity
Miembro activo
Mensajes: 78
Nacionalidad:
Re: Programa de numeros naturales
«
Respuesta #3 en:
Domingo 23 de Noviembre de 2008, 21:05 »
0
Código: C
#include <stdio.h>
typedef
struct
{
int
numero
;
int
unidad
;
int
decena
;
int
centena
;
}
tNumero
;
int
main
(
void
)
{
int
numero
,
resultado
,
aux
;
tNumero n
;
for
(
numero
=
1
;
numero
<
1000
;
numero
++
)
{
n.
numero
=
numero
;
n.
centena
=
numero
/
100
;
aux
=
numero
%
100
;
n.
decena
=
aux
/
10
;
aux
=
numero
%
10
;
n.
unidad
=
aux
;
resultado
=
(
n.
centena
+
n.
unidad
)
*
2
;
if
(
resultado
==
n.
decena
)
printf
(
"%d cumple la condicion!n"
,
n.
numero
)
;
}
return
0
;
}
bueno como veras incluso es mas corto sin modular, pero buenoo... espero que asi lo entiendas!
badyalberto
Miembro activo
Mensajes: 77
Re: Programa de numeros naturales
«
Respuesta #4 en:
Domingo 23 de Noviembre de 2008, 21:46 »
0
Editado, vale ya lo e entendido xD
«
última modificación: Domingo 23 de Noviembre de 2008, 21:55 por badyalberto
»
eternity
Miembro activo
Mensajes: 78
Nacionalidad:
Re: Programa de numeros naturales
«
Respuesta #5 en:
Domingo 23 de Noviembre de 2008, 21:51 »
0
uh estamos en problemas, se nota que no hace mucho que programas, en C uno puede generar sus propios tipos de datos, en este caso yo genere el mio, tNumero, que es un registro con el numero y su descomposicion, y tNumero n, es la declaracion de una variable n del tipo tNumero, igual ahora te lo paso legible para tus conocimientos!
Código: C
#include <stdio.h>
int
main
(
void
)
{
int
numero
,
unidad
,
decena
,
centena
,
resultado
,
aux
;
for
(
numero
=
1
;
numero
<
1000
;
numero
++
)
{
centena
=
numero
/
100
;
aux
=
numero
%
100
;
decena
=
aux
/
10
;
aux
=
numero
%
10
;
unidad
=
aux
;
resultado
=
(
centena
+
unidad
)
*
2
;
if
(
resultado
==
decena
)
printf
(
"%d cumple la condicion!n"
,
numero
)
;
}
return
0
;
}
ahora si? despues te falta poner la suma de sus cifras pero te la dejo a vos!
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Programa de numeros naturales