Buen intento, aunque fallido
Código: Seleccionar todo
int bola[7]={0}, bola_actual, extraccion, impresion, reintegro;
Primero, intenta no mezclar declaraciones de vectores con no vectores, e inicializaciones con otras declaraciones, queda demasiado confuso.
int bola[7]? Pero no eran 6 bolas? No me líes
int bola[7] = {0} no inicializa todos los elementos, sino sólo el primero a 0. Tienes dos opciones para lo que quieres hacer:
Código: Seleccionar todo
// Esto:
int bola[7] = {0,0,0,0,0,0,0};
// O esto:
int i;
for (i = 0; i < 7; i++)
{
bola[i] = 0;
}
Código: Seleccionar todo
while (!((bola_actual != bola[0]) && (bola_actual != bola[1]) && (bola_actual != bola[2]) && (bola_actual != bola[3]) && (bola_actual != bola[4]) && (bola_actual != bola[5]) && (bola_actual != bola[6])))
El utilizar un vector es precisamente para evitar este tipo de sentencias. Como dice ~Rdavid~ está mejor, pero no exactamente como lo ha puesto, que se queda cojo por tener que usar
break. Mejor así (no lo he probado, no me riñáis si no funciona
):
Código: Seleccionar todo
int i = 0;
while (i < 7)
{
if (bola_actual == bola[i])
{
i = 0;
bola_actual = (rand() % 49) + 1;
}
else
{
i++;
}
}
Cuando no se deban recorrer todos los elementos, siempre se usa
while y no
for.
For es para cuando sabemos de antemano cuántas repeticiones tenemos. Cuando veas funciones verás que se simplifica aún más (bueno, en realidad es lo mismo, pero queda más limpio
).
Ah, y un ultimo consejo: siempre es conveniente nombrar los vectores en plural, es decir
bolas y no
bola. Así sabes que son varios, y por tanto un vector.