Resultados 1 al 2 de 2

Tema: Error en medio de la ejecución en dev c++

  1. #1

    Predeterminado Error en medio de la ejecución en dev c++

    Buenas tardes,

    Estoy empezando en la programación y me he encontrado con un problema. En un curso hicimos un programa que genera números al azar sin que se repitan (trabajo en subvenciones y adapté el programa para que sirviera en mi trabajo, por eso veréis cosas de subvenciones en el código).

    La sorpresa fue cuando quise ejecutar el programa en mi casa (windows 8.1) y el programa se me cierra en medio de la ejecución. Os dejo el código:

    #include <iostream>
    #include <stdlib.h>
    #include <time.h>
    #include <vector>

    using namespace std;
    int main(int argc, char** argv) {

    int total;
    int a_revisar;
    int i;
    vector<int> v;
    vector<int> v_aux;
    int random_number;


    cout<<"Escribe el numero de trabajadores presentados a subvencion"<<endl;
    cin>>total;

    a_revisar = total/10;

    cout<<"Tienes que revisar los siguientes "<<a_revisar<<" casos"<<endl;

    srand(time(NULL));

    for(i=0; i<a_revisar; i++){

    random_number = rand()%total+1;

    if(v_aux[random_number] != 1){

    v_aux.push_back(random_number);

    v_aux[random_number] = 1;

    v.push_back(random_number);

    }else{
    i--;
    }
    }


    for(i=0; i<a_revisar; i++){

    cout<<v<<endl;
    }

    return 0;
    }

    El código compila correctamente y al ejecutarse, me sale el cout de cuantos trabajadores presento, hago el cin del número, me dice que tengo que revisar X trabajadores y justo después me salta un error que dice:

    [i]Proyecto1.exe dejó de funcionar
    El programa dejó de funcionar correctamente por un problema. Windows cerrará el programa y le notificará si existe alguna solución.

    Es raro porque todos los demás programas que traje del curso sí que me funcionan, algunos con las cuatro mismas librerías que este.

    Si alguien me puede ayudar, se lo agradeceré.

    Saludos

  2. #2

    Predeterminado Re: Error en medio de la ejecución en dev c++

    hace mucho que no programo y lo tengo olvidado pero creo que el error esta en esta linea:

    random_number = rand()%total+1;

    puede que el ramdom_number sea mayor que el vector que usas quizas total +1 tenga que ir entre parentesis.

    edito creo que debe quedar asi:

    random_number = rand()%total;

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •