Miércoles 20 de Noviembre de 2024, 16:24
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
) »
Confundido con código en C
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Confundido con código en C (Leído 4505 veces)
cltomas
Nuevo Miembro
Mensajes: 20
Confundido con código en C
«
en:
Jueves 24 de Marzo de 2011, 21:27 »
0
Yo otra vez con un código que no puedo hacer, no sé como plantearlo, sé que debe se un bucle while o eso creo, el ejerciccio es este:
Código: C
Escribir un programa que lea números hasta que se encuentre el cero.
El
segundo número se sumará al primero
,
luego el tercero se restará
,
el cuarto se sumará
,
y así se deberá seguir alternado hasta que se llegue al cero.
Cuando
se llegue a esta condicion deberá imprimir el resultado
,
el total de operandos de la operación
(
sin
incluir el cero
)
,
y la suma de los operandos que se restaron.
Llevo dandole vueltas en mi cabeza, pero no doy con él...
...
Un ayuda me vendría bien..desde ya gracias..
Al fin lo pude hacer, vaya tela de días que me costo
, aquí coloco el código final.. .. gracias por los consejos ....
Código: C
/* Hecho por Cltomas */
/*-----------------------------------Eterno Autodidacta -------------------------------------------------*/
/* "No hay mejor Aprendizaje que el impuesto por uno mismo" by Cltomas 2011....*/
/* Escribir un programa que lea números hasta que se encuentre el cero. El segundo número se sumará al primero
, luego el tercero se restará, el cuarto se sumará, y así se deberá seguir alternado hasta que se llegue al cero.
Cuando se llegue a esta condición deberá imprimir el resultado, el total de operandos de la operación (sin incluir el cero)
y la suma de los operandos que se restaron. */
#include <stdio.h>
int
main
(
)
{
int
a
;
int
b
,
c
;
int
suma
;
int
sum3
=
0
;
int
cont
=
1
;
puts
(
"Introduce 2 números, para sumarlos"
)
;
scanf
(
"%d%d"
,
&
a
,
&
b
)
;
getchar
(
)
;
suma
=
a
+
b
;
while
(
c
!=
0
)
{
puts
(
"Introduce otro número, para sumarlo o restarlo, según corresponda:"
)
;
scanf
(
"%d"
,
&
c
)
;
getchar
(
)
;
cont
+=
1
;
if
(
cont
%
2
!=
0
)
suma
+=
c
;
else
{
suma
-=
c
;
sum3
=
sum3
+
c
;
}
}
printf
(
"La suma Total: %d, Total Operandos: %d, Suma de los que se restaron: %d n"
,
suma
,
cont
,
sum3
)
;
return
0
;
}
Tweet
«
última modificación: Viernes 1 de Abril de 2011, 21:11 por cltomas
»
Leber
Miembro activo
Mensajes: 65
Re: Confundido con código en C
«
Respuesta #1 en:
Jueves 24 de Marzo de 2011, 22:23 »
0
Lo siento m0skito, fue un desliz.
Bueno, para orientarte un poco, puedes definir un array de 100 enteros por ejemplo, e ir entrando uno por uno hasta que sea 0.
Podrías postear el codigo que llevas hecho, así podriamos ayudarte mejor.
Saludos
«
última modificación: Viernes 25 de Marzo de 2011, 00:04 por Leber
»
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Confundido con código en C
«
Respuesta #2 en:
Jueves 24 de Marzo de 2011, 23:43 »
0
Leber, aquí no se hace la tarea
Fr33k K0mpu73r
cltomas
Nuevo Miembro
Mensajes: 20
Re: Confundido con código en C
«
Respuesta #3 en:
Viernes 25 de Marzo de 2011, 15:04 »
0
Aún no llego a los Arrays supuestamente, se debe hacer con bucles, que es en el capitulo que voy.... Sé que el bucle for no me vale, dado queno sé cuantas veces se introducira números antes de ingresar un 0... El while creo que me serviria.... Tenía pensado esto:
Código: C
float
,
a
,
b
,
c
,
d
;
float
Sum
,
restar
,
Sum2
;
int
cont
=
0
;
leer a
leer b
Sum
<-
a
+
b
;
mientras a
||
b distinto de cero
leer c
restar
=
Sum
-
c
;
cont
=
cont
+
1
;
//contador de números que se restan
leer d
Sum2
=
restar
+
d
;
Terminar mientras.
imrpimir
suma Total y suma de los que se restaron y total operandos...
Eso es más o menos lo que creo que me serviria, pero me hace que no funcionaría
.... ¿Estoy bien? o ¿estoy bien mal?
Y m0skito no es una tarea, es más mis timpos de estudiante terminaron, esto lo hago porque me gusta y soy totalmente novato y autodidacta.... lo pregunte porque llevo días dandole vueltas en mi cabeza, pero no me aclaro....
Saludos
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Confundido con código en C
«
Respuesta #4 en:
Viernes 25 de Marzo de 2011, 18:00 »
0
Igual sigue siendo una tarea, aunque sea impuesta por ti mismo. La razón fundamental es que aprendamos, no que nos den el problema ya resuelto de cortar y pegar y a correr. "Dale un pescado y comerá una vez, enséñale a pescar y comerá toda la vida"
Buenos os dejo con C que es más interesante que mis tonterías.
Fr33k K0mpu73r
Leber
Miembro activo
Mensajes: 65
Re: Confundido con código en C
«
Respuesta #5 en:
Viernes 25 de Marzo de 2011, 18:43 »
0
En verdad, puedes hacer algo asi.
Imagina que tienes un array de enteros,: int numeros[100]
Código: C
Bucle
{
Lees el numero
si es
0
salimos del bucle
}
Dado que necesitamos mínimo dos números, si hemos introducido menos salimos del programa.
Si no, continuamos. Entonces, podemos sumar los dos primeros números del array,
+ [1], y a partir de ahí sumas o restas dependiendo del indice del bucle.
Dado que hemos sumado los dos primeros, el tercero se restaría, el 4 se sumaria.
Yo lo haría según el resto que de el indice del segundo bucle % 2.
Ejemplo:
Código: C
indice2
<
numero_total_de_numeros_entrados
si indice
%
2
!=
0
restamos el numero
si indice
%
2
==
0
sumamos el numero
No se si me he explicado bien, estoy algo cansado pero espero que te sirva mas o menos
Saludos
cltomas
Nuevo Miembro
Mensajes: 20
Re: Confundido con código en C
«
Respuesta #6 en:
Sábado 26 de Marzo de 2011, 00:21 »
0
Lo tengo al 98% el código, solo me falla el contador de lo operandos totales menos el cero (no se cuenta) y que a veces no se sale del bucle while mientras no introduzca 2 ceros continuos
..
lo he probado con estos números:
Código: C
6
,
5
,
4
,
3
,
2
,
6
,
5
,
4
,
3
,
2
,
0
,
0
,
Código: C
#include <stdio.h>
int
main
(
)
{
int
a
,
b
,
c
,
d
;
int
cont
=
0
;
int
cont1
=
0
;
int
cont2
=
0
;
int
suma
;
int
sum
=
0
;
int
suma2
=
0
;
puts
(
"introduce 2 números"
)
;
scanf
(
"%d %d"
,
&
a
,
&
b
)
;
getchar
(
)
;
if
(
(
a
!=
0
)
&&
(
b
!=
0
)
)
{
suma
=
a
+
b
;
cont
=
cont
+
1
;
while
(
(
c
!=
0
)
&&
(
d
!=
0
)
)
{
puts
(
"introduce 1 número"
)
;
scanf
(
"%d"
,
&
c
)
;
getchar
(
)
;
sum
=
sum
+
c
;
cont1
=
cont1
+
1
;
puts
(
"introduce otro número"
)
;
scanf
(
"%d"
,
&
d
)
;
getchar
(
)
;
suma2
=
suma2
+
d
;
cont2
=
cont2
+
1
;
}
printf
(
"nSuma Total %d, Suma operandos que se Restaron %d, operandos %dn"
,
suma
-
sum
+
suma2
,
sum
,
cont
+
cont1
+
cont2
)
;
}
else
puts
(
"Error!"
)
;
}
Me ido un poco por las ramas, pero funciona ... mas o menos... algun aporte
ehecatl
Nuevo Miembro
Mensajes: 9
Re: Confundido con código en C
«
Respuesta #7 en:
Miércoles 30 de Marzo de 2011, 04:56 »
0
El problema no es tan dificil como crees.
Maneja todo dentro de un do-while, en la condicion del while metele justamente el que mientras no se de un valor cero lo siga ejecutando.
No olvides variables para el acumulado de la suma y resta que vayas haciendo asi como un contador para que tengas el total de numeros que has ido capturando
para saber si sumas o restas, dentro del ciclo do-while mete un if-else, if (contador % 2) suma else resta.
espero te sirva de algo la pseudo explicacion
Ehecatl
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Confundido con código en C