fork(2) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <stdbool.h>
  5.  
  6. // Función para generar una pregunta nueva
  7. void generarPregunta(int *num1, int *num2) {
  8. *num1 = rand() % 10 + 1; // Genera un número aleatorio entre 1 y 10
  9. *num2 = rand() % 10 + 1; // Genera otro número aleatorio entre 1 y 10
  10. printf("¿Cuánto es %d por %d?\n", *num1, *num2);
  11. }
  12.  
  13. // Función para verificar la respuesta del estudiante
  14. bool verificarRespuesta(int respuesta, int num1, int num2) {
  15. return respuesta == num1 * num2;
  16. }
  17.  
  18. // Función para mostrar un mensaje de retroalimentación
  19. void mostrarMensaje(bool respuestaCorrecta) {
  20. const char *respuestasCorrectas[] = {"Muy bien!", "Excelente!", "Buen trabajo!", "Bravo, eres un campeón!"};
  21. const char *respuestasIncorrectas[] = {"Uf! No es correcta, por favor intenta de nuevo.",
  22. "Incorrecto. Intenta una vez más.",
  23. "No te rindas! Trata de nuevo.",
  24. "Tú puedes, sigue intentando."};
  25.  
  26. if (respuestaCorrecta) {
  27. printf("%s\n", respuestasCorrectas[rand() % 4]); // Selecciona un mensaje aleatorio de respuestas correctas
  28. } else {
  29. printf("%s\n", respuestasIncorrectas[rand() % 4]); // Selecciona un mensaje aleatorio de respuestas incorrectas
  30. }
  31. }
  32.  
  33. int main() {
  34. srand(time(NULL)); // Inicializa la semilla para los números aleatorios
  35.  
  36. int intentos = 0;
  37. int correctas = 0;
  38. int num1, num2, respuesta;
  39.  
  40. while (intentos < 15) { // Mientras no se hayan hecho 15 intentos
  41. generarPregunta(&num1, &num2); // Genera una nueva pregunta
  42.  
  43. scanf("%d", &respuesta); // Lee la respuesta del usuario
  44.  
  45. if (verificarRespuesta(respuesta, num1, num2)) {
  46. mostrarMensaje(true); // Muestra mensaje de respuesta correcta
  47. correctas++;
  48. } else {
  49. mostrarMensaje(false); // Muestra mensaje de respuesta incorrecta
  50. }
  51.  
  52. intentos++;
  53. }
  54.  
  55. float porcentaje = (float)correctas / 15 * 100; // Calcula el porcentaje de respuestas correctas
  56.  
  57. printf("Preguntas correctas: %d\n", correctas);
  58. printf("Preguntas incorrectas: %d\n", 15 - correctas);
  59. printf("Rendimiento: %.2f%%\n", porcentaje);
  60.  
  61. if (porcentaje <= 70) {
  62. printf("Te sugerimos que repitas el ejercicio.\n");
  63. } else {
  64. printf("¡Felicidades! Puedes continuar con el siguiente nivel.\n");
  65. }
  66.  
  67. return 0;
  68. }
  69.  
Success #stdin #stdout 0s 5304KB
stdin
Standard input is empty
stdout
¿Cuánto es 8 por 3?
Incorrecto. Intenta una vez más.
¿Cuánto es 2 por 1?
Uf! No es correcta, por favor intenta de nuevo.
¿Cuánto es 7 por 8?
Tú puedes, sigue intentando.
¿Cuánto es 8 por 2?
Incorrecto. Intenta una vez más.
¿Cuánto es 8 por 8?
Tú puedes, sigue intentando.
¿Cuánto es 6 por 6?
Uf! No es correcta, por favor intenta de nuevo.
¿Cuánto es 7 por 2?
Uf! No es correcta, por favor intenta de nuevo.
¿Cuánto es 6 por 5?
Incorrecto. Intenta una vez más.
¿Cuánto es 6 por 4?
Incorrecto. Intenta una vez más.
¿Cuánto es 7 por 3?
No te rindas! Trata de nuevo.
¿Cuánto es 6 por 3?
Tú puedes, sigue intentando.
¿Cuánto es 5 por 6?
Tú puedes, sigue intentando.
¿Cuánto es 9 por 4?
Tú puedes, sigue intentando.
¿Cuánto es 7 por 1?
Uf! No es correcta, por favor intenta de nuevo.
¿Cuánto es 4 por 9?
Tú puedes, sigue intentando.
Preguntas correctas: 0
Preguntas incorrectas: 15
Rendimiento: 0.00%
Te sugerimos que repitas el ejercicio.