Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: GominaTilted en 22 Octubre 2018, 17:18 pm



Título: Ayuda con bucle for
Publicado por: GominaTilted en 22 Octubre 2018, 17:18 pm
Buenas tengo el siguiente código:

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.


Título: Re: Ayuda con bucle for
Publicado por: 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í?


Título: Re: Ayuda con bucle for
Publicado por: GominaTilted en 22 Octubre 2018, 17:35 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.


Título: Re: Ayuda con bucle for
Publicado por: Dresden en 22 Octubre 2018, 18:18 pm
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
  1. 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.


Título: Re: Ayuda con bucle for
Publicado por: GominaTilted en 22 Octubre 2018, 23:27 pm
Ah vale muchas gracias, es que como estoy empezando no conocía el concepto en su totalidad. Cosas de noob :p