#include <stdio.h>
#include <string.h>
#define MAXLON 10
#define N 6

int main(void) {
    int opcion, elocal=-1, evisitante=-1, resultado, lista_puntos[N]={0,0,0,0,0,0}, i, o, ganador;
    int resultados[N][N]= {{-1, -1,  0, -1,  2, -1},
                           { 1, -1,  1, -1, -1,  1},
                           {-1, -1, -1, -1,  0,  0},
                           { 1,  1,  2, -1, -1, -1},
                           {-1,  1, -1,  1, -1, -1},
                           { 0, -1, -1,  0,  0, -1}};
    char local, visitante, equipos[N][MAXLON]={"verde","rojo","azul","amarillo", "naranja", "blanco"};


/* Creo la lista de puntos por equipos de la liga */
    for (i=0; i<N; i++){
      for (o=0; o<N; o++){
    if (resultados[i][o]==1){
      lista_puntos[i]+=3;
    }
    if (resultados[i][o]==2){
      lista_puntos[o]+=3;
    }
    if (resultados[i][o]==0){
      lista_puntos[i]++;
          lista_puntos[o]++; 
    }    
      }    
    }

/* Muestro el menu al usuario */
    printf("Elige una Opcion:\n");
    printf("   1) Mostrar resultado de un partido\n");
    printf("   2) Mostrar actual campeon\n");
    printf("   3) Salir\n");   
    scanf("%d", & opcion);
while (opcion!=3){
    switch(opcion) {
    case 1:
      printf("Introduce el nombre del equipo local:\n");
      scanf("%s", &local);
      printf("Introduce el nombre del equipo visitante:\n");
      scanf("%s", &visitante);
      for (o=0; o<N; o++){
        if (strcmp(equipos[o],local)==0){
      elocal=o;}
        if (strcmp(equipos[o],visitante)==0){
      evisitante=o;}
      }
      if (evisitante!=-1 && elocal!=-1){
    resultado=resultados[elocal][evisitante];
        if (resultado==1){     // Ganó el equipo local !
    printf("Ganador: %s (equipo local)\n", &local);
    }
    if (resultado==0){    // Empate !
    printf("Resultado: Empate\n");
    }
    if (resultado==2){    // Ganó el equipo VISITANTE !
    printf("Ganador: %s (equipo visitante)\n", &visitante);
    }
    if (resultado==-1){   // No disputado !
    printf("Partido no disputado !\n");
    }
      }
      else{
    printf("El equipo solicitado no existe !!\n");}
      break;


    case 2:
      ganador=0;
      for (i=1;i<N;i++){
    if(lista_puntos[i]>lista_puntos[ganador]){
      ganador=i;
    }
      }
      printf("El lider es el %s\n", equipos[ganador]);
      break;
    }
    printf("Elige una Opcion:\n");
    printf("   1) Mostrar resultado de un partido\n");
    printf("   2) Mostrar actual campeon\n");
    printf("   3) Salir\n");   
    scanf("%d", & opcion);
  }
    return 0;
}

Please, help me. This code is for a soccer league, but; it doesn't work properly, I think the error is in strcmp comparison.


Cheers

scanf("%s", &local);
printf("Introduce el nombre del equipo visitante:\n");
scanf("%s", &visitante);

Both these variables need to be char arrays, not single chars, if you want to store a string there.

Ahhh, of course.

I have to set them as visitante[20] , local[20] in the declaration.


Thanks !!!!!!

This article has been dead for over six months. Start a new discussion instead.