Programación General > C/C++

 Confundido con código en C

<< < (2/2)

Leber:
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, [0] + [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_entradossi indice %2 != 0  restamos el numerosi 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:
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  :rolleyes:

ehecatl:
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

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa