Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] problema sencillo en c++

Estas en el tema de problema sencillo en c++ en el foro de C/C++ en Foros del Web. Hola, estoy haciendo un programa sencillito de preguntas, y quiero que las preguntas sean aleatorias, entonces estoy haciendo una funcion que es esta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 22/09/2013, 13:24
 
Fecha de Ingreso: septiembre-2013
Mensajes: 3
Antigüedad: 10 años, 7 meses
Puntos: 0
Pregunta problema sencillo en c++

Hola, estoy haciendo un programa sencillito de preguntas, y quiero que las preguntas sean aleatorias, entonces estoy haciendo una funcion que es esta:

Código C++:
Ver original
  1. int pregunta(){
  2.      srand(time(NULL));
  3.      int vector[10];
  4.      int preg = rand()%10+1;
  5.      vector[preg] = preg;
  6.      for(int i; i < 10; i++){
  7.            if(vector[i] == preg){
  8.                                                      
  9.            }
  10.      }    
  11. }

No la termine, porque estoy tildado, lo que yo quiero hacer es que, genere un numero aleatorio y lo guarde en preg, y va a ir pidiendo varias veces numeros, entonces quiero que cada preg se almacene en un vector, pero que cada vez que preg este repetido, busque otro numero que no este repetido, y que la funcion me retorne ese numero. Gracias.
  #2 (permalink)  
Antiguo 22/09/2013, 15:50
 
Fecha de Ingreso: septiembre-2013
Mensajes: 3
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: problema sencillo en c++

Les dejo el main(), estoy probando no hacerlo por la funcion sino directo en el main, pero me sigue sin salir...

Código C++:
Ver original
  1. int main(){
  2.     preguntas pr;
  3.     int opcion = 0;
  4.     bool salir = false;
  5.     while(!salir){
  6.             opcion = menu();
  7.             if(chequearopcion(opcion)){
  8.                   if(opcion == 1){
  9.                        int puntos = 10000;  
  10.                        int preg, vector[10];  
  11.                        while(puntos > 0){
  12.                              srand(time(NULL));  
  13.                              preg = 1 + rand()%10;
  14.                              for(int i=1;i<10;i++){
  15.                                      if(vector[i] == preg)
  16.                                      {
  17.                                                  
  18.                                      }
  19.                                      else{
  20.                                         vector[preg] = preg;
  21.                                         break;    
  22.                                      }
  23.                              }
  24.                              switch(preg){
  25.                                   case 1:
  26.                                        pr.preg1();
  27.                                   break;
  28.                                   case 2:
  29.                                        pr.preg2();
  30.                                   break;
  31.                                   case 3:
  32.                                        pr.preg3();
  33.                                   break;
  34.                                   case 4:
  35.                                        pr.preg4();
  36.                                   break;
  37.                                   case 5:
  38.                                        pr.preg5();
  39.                                   break;
  40.                                   case 6:
  41.                                        pr.preg6();
  42.                                   break;
  43.                                   case 7:
  44.                                        pr.preg7();
  45.                                   break;
  46.                                   case 8:
  47.                                        pr.preg8();
  48.                                   break;
  49.                                   case 9:
  50.                                        pr.preg9();
  51.                                   break;
  52.                                   case 10:
  53.                                        pr.preg10();
  54.                                   break;                  
  55.                              }    
  56.                        }    
  57.                   }
  58.                   else{
  59.                        if(opcion == 2){
  60.                            comojugar();
  61.                        }
  62.                        else{
  63.                            salir = true;    
  64.                        }    
  65.                   }                                              
  66.             }
  67.             else{
  68.                cout << "Caracter invalido." << endl;
  69.                system("pause");    
  70.             }
  71.     }
  72.  
  73. }
  #3 (permalink)  
Antiguo 24/09/2013, 16:09
 
Fecha de Ingreso: septiembre-2013
Mensajes: 3
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: problema sencillo en c++

Ya lo pude resolver, marco el tema como solucionado. Asi lo resolvi:

Código C++:
Ver original
  1. for(int i = 0; i<10; i++){
  2.                                   preg = rand()%10 + 1;
  3.                                    for(int c = 0; c<i; c++){
  4.                                        if(vector[c] == preg){
  5.                                               preg = rand()%10 + 1;
  6.                                                    c = -1;
  7.                                        }
  8.                                    }
  9.                                                  vector[i] = preg;
  10.                                    }

hice eso y despues recorro el vector para hacer las preguntas

Etiquetas: c++, vectores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:56.