C/Visual C - Problema con programa

 
Vista:

Problema con programa

Publicado por Mick (9 intervenciones) el 25/09/2006 23:04:07
Hola, haber si alguien me pudiera ayudar, con el siguiente programa que tengo de tarea....
es un programa que viene siendo como un examen, tengo poner 20 preguntas, con 3 opciones como respuesta, el problema es que necesito, que solo aparezcan 10 preguntas pero que por ejemplo, la primera vez salga de la pregunta 1 al a 10, y a la segunda vez ke corra el programa ke salga de la 11 a la 20, kreo que hay una opcion de random pero no se si es con eso, o ke pueda hacer para ke salgan asi las preguntas, o todas a leatorias, no importa el orden, solo que sean diferentes cada vez ke se corra el programa

aqui tengo parte del codigo que he usado para las preguntas

#include<stdio.h>
#include<conio.h>

void main(void)
{
char resp;
float cal=0;
printf("\n1.- Es un componente discreto que permite la circulación de corriente entre sus terminales en un determinado sentido, mientras que la bloquea el sentido contrario.\n");
printf("a)El Transistor\n");
printf("b)El Diodo\n");
printf("c)El Amplificador Operacional\n");
printf("La respuesta es: ");
resp=getche();
if(resp=='b')
cal=cal+10;
else
cal=cal+0;
printf("\n2.- Como se le conoce a la región en la que el diodo empieza a conducir inversamente.\n");
printf("a)Región Ruptura De Avalancha\n");
printf("b)Region De Corte\n");
printf("c)Region De Saturacion\n");
printf("La respuesta es: ");
resp=getche();
if(resp=='a')
cal=cal+10;
else
cal=cal+0;
printf("\n3.- Al potencial máximo de polarización inversa que puede aplicarse antes de ingresar a la región zener se le denomina.\n");
printf("a)Voltaje De Pico Inverso\n");
printf("b)Corriente Inversa\n");
printf("c)Voltaje Zener\n");
printf("La respuesta es: ");
resp=getche();
if(resp=='a')
cal=cal+10;
else
cal=cal+0;

y asi siguen las demas siendo un total de 20 preguntas....

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con programa

Publicado por Eduardo Negrete (76 intervenciones) el 26/09/2006 04:47:08
debes usar un menu, y un random() % 21, este iria de 0 a 20
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con programa

Publicado por Mick (9 intervenciones) el 26/09/2006 05:11:47
Mmmmm no entendi muy bien tu respuesta.... es que soy nuevo en esto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con programa

Publicado por Eduardo Negrete (76 intervenciones) el 26/09/2006 16:52:58
Pues mira fue el primercodigo que se me ocurrio debe de haber otra forma de hacerlo pero creo que con esto te puedes dar una idea mas clara

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>

int cal = 0; // Para Almacenar la calificacion
int Preguntas( int Numero );
int randPregunta( int np[] );

int main()
{

int num, i;
int numPreguntas[20];

for ( i = 0; i < 20; i++ )
numPreguntas[i] = i + 1; // Enumera El Vector De 1 A 20

for ( i = 0; i < 10; i++ )
{
num = randPregunta( numPreguntas );
Preguntas( num );
}

return 0;
}

int Preguntas( int Numero )
{

// En Cada Caso Van las preguntas y respuestas
switch( Numero )
{
case 1:
printf("Entro A La Pregunta 1\n");
getche();
break;
case 2:
printf("Entro A La Pregunta 2\n");
getche();
break;
case 3:
printf("Entro A La Pregunta 3\n");
getche();
break;
case 4:
printf("Entro A La Pregunta 4\n");
getche();
break;
case 5:
printf("Entro A La Pregunta 5\n");
getche();
break;
case 6:
printf("Entro A La Pregunta 6\n");
getche();
break;
case 7:
printf("Entro A La Pregunta 7\n");
getche();
break;
case 8:
printf("Entro A La Pregunta 8\n");
getche();
break;
case 9:
printf("Entro A La Pregunta 9\n");
getche();
break;
case 10:
printf("Entro A La Pregunta 10\n");
getche();
break;
case 11:
printf("Entro A La Pregunta 11\n");
getche();
break;
case 12:
printf("Entro A La Pregunta 12\n");
getche();
break;
case 13:
printf("Entro A La Pregunta 13\n");
getche();
break;
case 14:
printf("Entro A La Pregunta 14\n");
getche();
break;
case 15:
printf("Entro A La Pregunta 15\n");
getche();
break;
case 16:
printf("Entro A La Pregunta 16\n");
getche();
break;
case 17:
printf("Entro A La Pregunta 17\n");
getche();
break;
case 18:
printf("Entro A La Pregunta 18\n");
getche();
break;
case 19:
printf("Entro A La Pregunta 19\n");
getche();
break;
case 20:
printf("Entro A La Pregunta 20\n");
getche();
break;
}

return 0;
}

int randPregunta( int np[] )
{
int npregunta;

srand( (unsigned) time( NULL ) );

do
{
npregunta = rand() % 19 + 1; // Valor Aleatorio de 1 a 20

} while ( np[npregunta - 1] == 0 );

np[npregunta - 1] = 0; // Le Coloca Un Cero Para Saber Que Esa Pregunta Ya Se Hizo


return npregunta;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar