duda array [c++]

Iniciado por dbr69, 15 Enero 2016, 00:53 AM

0 Miembros y 1 Visitante están viendo este tema.

dbr69

Hola buenas,si este tema no es adecuado aquí perdón soy nuevo jeje , tengo una duda con la que me estoy comiendo la cabeza y no consigo como sacarla.

Imaginaos que creamos una array de tamaño 13 donde en cada posición hay un número.Entoces digamos que va a haber 10 rondas, en la primera ronda, se muestran los 3 primeros valores de la array, en la segunda  los 4, en la quinta los 5 y así sucesivamente hasta llegar a la ronda 10 (mostrándose en la última ronda los 13 números).

La duda viene ahora, de primeras pues se me ocurre hacer a lo bruto las 10 rondas, es decir, hacer el código dela primera ronda mostrando los 3 primeros valores, hacer el código de la segunda ronda con los 4 primeros valores y así hasta la ronda 10, pero imaginaos que no son 10 rondas, si no 100, como tenga que hacer las 100 rondas a lo bruto me tiro horas picando código jeje.

Entonces ¿hay alguna forma de manera automática en la que cada vez que se pasa de ronda al mostrar el array se muestra el valor siguiente  y los anteriores claro?


Y ya por último, suponer que estamos en la ronda 7, y quiero volver a empezar desde la primera ronda, ¿cómo se podría volver al principio?



Gracias de antemano.

0xFer

Ponte a jugar un rato con los bucles.
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

dbr69

no es cuestion de bluces , no es cuestion de mostrar 3 numeros y luego 4 y luego 5 ....

0xFer

#3
Cita de: dbr69 en 15 Enero 2016, 02:29 AM
no es cuestion de bluces , no es cuestion de mostrar 3 numeros y luego 4 y luego 5 ....
Bueno en realidad si xD

El siguiente código hace mao o meno lo que quieres;

Código (cpp) [Seleccionar]
int array [] = { 3,4,2,4};
int NumRondas = 4;

for( int Ronda_Actual = 1; Ronda_Actual <= NumRondas;Ronda_Actual++){
   cout << endl << "Ronda Número: " << Ronda_Actual << endl;
   for( int i = 0; i < Ronda_Actual; i++)
    cout << array[i] << endl;
}


El Número de ronda empieza en 1 y en ese caso se imprime el primer elemento del array, Puedes hacer que empiece en cualquier ronda pero tienes que poner condicionales para no pasarte del tamaño del array. El código no es exactamente lo que quieres pero es sólo para hacerte una idea.
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

Orubatosu

Esto se llama "bucles anidados"

Un bucle dentro de otro bucle, es un concepto sencillo como te han indicado antes, y muy común en programación.

Practicalo hasta dominarlo, porque es algo básico
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

dbr69

a vale claro , no lo habia visto , y yo tampoco me habia explicado muy bien por que queri un resultado estilo:

ronda 1: 1 ,2 3.
ronda 2: 1,2,3,4.
ronda :1,2,3,4,5. y asi..


tambien e caido que en vede hacerlo con for lo hare con while ya que por ejemplo en la ronda 7 si quiero salir meto una variable booleana y asi en el while pongo de condicion que  si es false salga .


gracias ;-)