Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: silfer_1908 en 23 Octubre 2018, 07:31 am



Título: ayuda
Publicado por: silfer_1908 en 23 Octubre 2018, 07:31 am
tengo el siguiente codigo en el cual solo puedo introducir un pais y una capital, y necesito colocar varios ya que es un juego de aciertos y errores .



#include"stdio.h"
#include"string.h"
#define t 20
main()
{
    int i,n=4,error=0,acierto=0;
    char pais1[t]="mexico ";
    char capital1[t]="distrito-federal";
    char respuesta[t];
    printf("cual es la capital de %s ? \n",pais1);
    fflush(stdin),gets(respuesta);
    if (strcmp(capital1,respuesta)==0)
        {printf(" correcto\n");
        acierto+=1;
        }
    else
       {
         printf("incorrecto\n");
        error+=1;
       }

    printf(" \n marcador\n");
    printf("numero de aciertos %i\n",acierto);
    printf(" numero de errores %i\n",error);


Título: Re: ayuda
Publicado por: Dresden en 23 Octubre 2018, 13:04 pm
Código
  1. #include <stdio.h>   // fgets()
  2. #include <string.h>  // strcspn(), strcmp()
  3.  
  4. enum { N_PAISES = 10, N_CHARS = 10 };
  5.  
  6. int main(void) {
  7.    const char paises[N_PAISES][N_CHARS] = {
  8.        "Angola", "Egipto", "Lesoto", "Serbia", "Guinea",
  9.        "Grecia", "Brasil", "Ruanda", "Kosovo", "Chipre"
  10.    };
  11.  
  12.    const char capitales[N_PAISES][N_CHARS] = {
  13.        "Luanda", "El Cairo", "Maseru", "Belgrado", "Conakri",
  14.        "Atenas", "Brasilia", "Kigali", "Pristina", "Nicosia"
  15.    };
  16.  
  17.    char respuesta[N_CHARS];
  18.    int aciertos = 0;
  19.    int errores  = 0;
  20.  
  21.    for (int i = 0; i < N_PAISES; ++i) {
  22.        printf("Cual es la capital de %s? ", paises[i]);
  23.        fgets(respuesta, sizeof respuesta, stdin);
  24.        respuesta[strcspn(respuesta, "\r\n")] = '\0';
  25.  
  26.        if (strcmp(respuesta, capitales[i]) == 0) {
  27.            printf("\t* Correcto *\n\n");
  28.            ++aciertos;
  29.        } else {
  30.            printf("\t* Incorrecto *\n\n");
  31.            ++errores;
  32.        }
  33.    }
  34.  
  35.    printf(
  36.        "   MARCADOR    \n"
  37.        "Aciertos --> %i\n"
  38.        "Errores ---> %i\n",
  39.        aciertos, errores
  40.    );
  41.  
  42.    return 0;
  43. }