Ayuda con bucle for

Iniciado por GominaTilted, 22 Octubre 2018, 17:18 PM

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

GominaTilted

Buenas tengo el siguiente código:

#include <cstdlib>
#include <iostream>
using namespace std;

int main()
{
int j1;
int i = 0;
int n;
int vic = 0;
int der = 0;

cin >> n;

for (i = 0; i == n; i++)
{
j1 = 1 + rand() % (51 - 1);

if (j1 > 0 && j1 < 25)
{
vic ++;
}
else
{
der++;
}
}

cout << vic;
cout << endl;
cout << der;

return 0;
}


Pretende generar un numero aleatorio 'n' veces, y dependiendo del rango en el que esté contenido se sumará a las variables 'vic' o 'der'. La cuestión es que siempre me devuelve 0 en ambas. ¿El valor de las variables no se guarda al salir del bucle? En ese caso, ¿cómo sería el programa que planteo? ¿O estoy haciendo algo mal y no me doy cuenta?

Como podreis notar soy muy principante en esto.

Muchas gracias.

EdePC

Saludos,

- Revisa esta parte:

for (i = 0; i == n; i++)

- No deberías de utilziar i < n o algo así?

GominaTilted

Cita de: EdePC en 22 Octubre 2018, 17:32 PM
Saludos,

- Revisa esta parte:

for (i = 0; i == n; i++)

- No deberías de utilziar i < n o algo así?
Sí, efectivamente, pero no lo entiendo. Si 'i < n', para cualqiuer valor de 'i', ¿no debería de finalizar el bucle? Me tengo que repasar el concepto ese desde luego jajaja.

Dresden

#3
Mientras la condición i < n sea verdadera, las repeticiones seguirán ejecutándose. Cuando la condición no se cumpla (cuando i llegue a ser igual a n), las iteraciones de la sentencia for terminarán.

En la condición:
Código (cpp) [Seleccionar]
if (j1 > 0 && j1 < 25)

La primera parte (j1 > 0) no es necesaria, siempre será verdadera debido al rango en el que se generan los números aleatorios.
PROGRAMMER
noun. [pro-gram-mer]
Someone who solves a problem
you didn't know you had, in a way
that you don't understand.

See also wizard, magician.

GominaTilted

Ah vale muchas gracias, es que como estoy empezando no conocía el concepto en su totalidad. Cosas de noob :p