Autor
|
Tema: Pregunta basica de c++ (Leído 2,802 veces)
|
JuanitoPerez999999
Desconectado
Mensajes: 5
|
Hola tengo una consulta. Estoy haciendo un juego de preguntas en c++ para el instituto y tengo un problema. No se como hacer para que cuando responda incorrectamente se quede en esa pregunta hasta que responda bien, me pasa que responde incorrectamente y la consola se cierra Asi tengo el codigo si tengo algo mal que es lo mas probable diganme asi lo puedo arreglar porfavor int main () { int num; char pos,j1,j2; { partida: j1,j2; pos1: ; pos2: ; pos3: ; pos4: ; pos5: ; } printf("JUGADOR 1 RESPONDA.\n"); printf("Pregunta Numero 1: Cual es la capital de chile:\n\n 1) Valparaiso 2) Santiago\n"); scanf("%d",&num); while(num!=2) {printf ("Jugador 1 se mantiene en la posicion\n"); return 0; } {if(num=2) printf("Jugador 1 avanza a la posicion Numero 2\n\n"); } printf("JUGADOR 2 RESPONDA\n"); printf("Pregunta Numero 1: Cual es la capital de brasil:\n\n 1) Brasilia 2) Rio de Janeiro\n"); scanf("%d",&num); while(num!=1) { printf("Jugador 2 se mantiene en la posicion\n\n"); return 0; } {if(num=1) printf("Jugador 2 avanza a la posicion Numero 2 \n\n"); } printf("JUGADOR 1 RESPONDA\n"); printf("Pregunta Numero 2: Cual es la capital de Argentina:\n\n 1) Mendoza 2) Buenos aires\n"); scanf("%d",&num); while(num!=2) {printf("Jugador 1 se mantiene en la posicion Numero 2"); } {if(num=2) printf("Jugador 1 avanza a la posicion Numero 3\n\n"); } printf("JUGADOR 2 RESPONDA\n"); printf("Pregunta Numero 2: Cual es la capital de Peru:\n\n 1) Lima 2) Cuzco\n"); scanf("%d",&num); while(num!=1) {printf("Jugador 2 se mantiene en la posicion Numero 2"); return 0; } {if(num=1) printf("Jugador 2 Avanza a la posicion Numero 3\n\n"); }
[MOD] Al publicar codigo usar etiquetas geSHi.
|
|
« Última modificación: 11 Julio 2016, 03:17 am por simorg »
|
En línea
|
|
|
|
+ 1 Oculto(s)
Desconectado
Mensajes: 298
un defecto se puede convertir en una virtud
|
bueno la idea seria poner un while infinito asi while(true)
y tener una variable bandera que avise si la palabra coincide y cambias el valor de la variable a false, de esa forma se sale del ciclo infinito
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
Lo ideal es un do-while Para que al menos entre una sola vez y solo salga si una variable esta en false. bool entrar = true; //... do{ scanf("%d",&variable ); //recomiendo NO usar scanf if(variable == X) {//X tiene tu respuesta correcta entrar = false; } }while(entrar);
Saludos!
|
|
« Última modificación: 11 Julio 2016, 02:56 am por AlbertoBSD »
|
En línea
|
|
|
|
+ 1 Oculto(s)
Desconectado
Mensajes: 298
un defecto se puede convertir en una virtud
|
scanf("%d",&variable); //recomiendo NO usar scanf por que no usar scanf??? saludos... AlbertoBSD
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
Detalles del input ya que muchas veces combinan esos programas con otros código que leen cadenas y el scanf no procesa el retorno de linea y cuando leen cadena en otra función lee el enter que no proceso el scanf y luego llegan aqui preguntando por que no les funciona el programa. Mejor que procesen las cadenas manualmente y pero en fin es solo una recomendacion. Volviendo al tema este codigo solo sale cuando el numero leido es 10. #include<stdio.h> #include<stdbool.h> int main() { bool entrar = true; int variable; do{ if(variable == 10) { entrar = false; } }while(entrar); return 0; }
Saludos!
|
|
|
En línea
|
|
|
|
JuanitoPerez999999
Desconectado
Mensajes: 5
|
aun no logro hacer que pase lo que pide el maestro
no se como hacer para que Cuando el jugador 1 responda incorrectamente le muestre que su respuesta fue incorrecta y que pase a la pregunta del siguiente jugador 2 si el jugador 2 responde correctamente pase a la pregunta N°2 y que nuevamente le muestre la pregunta al jugador 1 hasta que responda correctamente
si pudieran ayudarme con esa estructura estoy seguro que puedo hacer todo lo demas del codigo solo me falta eso
|
|
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
Creo que seria algo asi solo que tiene un error y no lo localizo pero el programa despues de ese error ya esta completo #include<stdio.h> #include<stdbool.h> #define TOTAL_PREGUNTAS 10 #define OPCIONES 3 #define NUM_JUGADORES 2 int main() { char *preguntas[TOTAL_PREGUNTAS] = {"pregunta 1","pregunta 2","pregunta 3","pregunta 4","pregunta 5","pregunta 6","pregunta 7","pregunta 8","pregunta 9","pregunta 10"}; char *opciones[TOTAL_PREGUNTAS][OPCIONES] = { {"P1 Opciona A","P1 Opciona B","P1 Opciona C"}, {"P2 Opciona A","P2 Opciona B","P2 Opciona C"}, {"P3 Opciona A","P3 Opciona B","P3 Opciona C"}, {"P4 Opciona A","P4 Opciona B","P4 Opciona C"}, {"P5 Opciona A","P5 Opciona B","P5 Opciona C"}, {"P6 Opciona A","P6 Opciona B","P6 Opciona C"}, {"P7 Opciona A","P7 Opciona B","P7 Opciona C"}, {"P8 Opciona A","P8 Opciona B","P8 Opciona C"}, {"P9 Opciona A","P9 Opciona B","P9 Opciona C"}, {"P10 Opciona A","P10 Opciona B","P10 Opciona C"}}; int correctas[TOTAL_PREGUNTAS] = {2,3,1,2,3,1,2,3,1,3}; //Repuestas correctas de cada pregunta int jugadores[NUM_JUGADORES] = {0,0}; //Posicion inicial de los jugadores int pregunta = 0,i = 0,j = 0; bool entrar = true; int variable = 0; while(jugadores[0] < TOTAL_PREGUNTAS || jugadores[1] < TOTAL_PREGUNTAS ) { i = 0; while(i < NUM_JUGADORES){ pregunta = jugadores[i]; entrar = true; do{ printf("%s\n",preguntas [pregunta ]); j = 0; while(j < OPCIONES) { printf("%i) %s\n",j +1,opciones [pregunta ][j ]); j++; } if(variable == correctas[pregunta]) { jugadores[i]++; entrar = false; } else { printf("Opcion incorrecta.\n"); } }while(entrar); i++; } } return 0; }
Saludos!
|
|
« Última modificación: 11 Julio 2016, 04:47 am por AlbertoBSD »
|
En línea
|
|
|
|
JuanitoPerez999999
Desconectado
Mensajes: 5
|
gracias amigo me has despejado algunas dudas de verdad muchas gracias
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Pregunta 'basica'] Que es Melt?
Análisis y Diseño de Malware
|
CAR3S?
|
3
|
3,642
|
15 Abril 2011, 22:34 pm
por CAR3S?
|
|
|
Pregunta muy basica
Java
|
Xedrox
|
3
|
2,557
|
7 Julio 2011, 03:39 am
por Xedrox
|
|
|
pregunta basica sobre Backtrack
Hacking Wireless
|
gragus
|
1
|
2,221
|
4 Octubre 2011, 12:40 pm
por pianista
|
|
|
una pregunta muy basica
.NET (C#, VB.NET, ASP)
|
taul
|
2
|
1,863
|
7 Julio 2013, 17:59 pm
por taul
|
|