Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: RamiroXDL en 2 Junio 2016, 20:29 pm



Título: Ayuda con un problema en c
Publicado por: RamiroXDL en 2 Junio 2016, 20:29 pm
Hola gente necesito su ayuda con este problema,no se como resolverlo les muestro lo que ya tengo hecho ademas

El problema a resolver seria el siguiente:
1. Cargar un arreglo de Equipos.
2. Cargar un arreglo de Jugadores. Validar que el idEquipo corresponda a algún
Equipo (en el arreglo de equipos). Dicha operación se puede realizar en una
función aparte.
3. Mostrar los arreglos por pantalla, primero mostrando la información de un equipo y
luego los jugadores que el corresponden (piense en cómo modularizarlo)

Yo ya cargue los arreglos,pero no entiendo lo de darle id al equipo y como mostrarlo primero mostrando la informacion de un equipo y luego los jugadores que le corresponden

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct
  6. {
  7.    int idJugador;
  8.    char nombre[30];
  9.    int edad;
  10.    int idEquipo;
  11.  
  12.  
  13. }jugador;
  14.  
  15. typedef struct
  16. {
  17.    int idEquipo;
  18.    char nombre[30];
  19.    int zona;
  20. }equipo;
  21.  
  22. int CargarEquipo( equipo E[] ,int dimension)
  23. {
  24.     int i=0;
  25.     char control='s';
  26.  
  27.     while(control=='s' && i<dimension)
  28.     {
  29.         printf("Ingrese el identificador del Equipo:");
  30.         fflush(stdin);
  31.         scanf("%d",&E[i].idEquipo);
  32.  
  33.         printf("Ingrese el nombre del Equipo:");
  34.         fflush(stdin);
  35.         scanf("%s",&E[i].nombre);
  36.  
  37.         printf("Ingrese en que Zona esta el Equipo:");
  38.         fflush(stdin);
  39.         scanf("%d",&E[i].zona);
  40.  
  41.        printf("Desea cargar otro equipo? (S/N)");
  42.        fflush(stdin);
  43.        scanf("%c",&control);
  44.  
  45.        i++;
  46.  
  47.     }
  48.  
  49.    return i;
  50. }
  51. int CargarJugadores (jugador J[],int dimension)
  52.    {
  53.        int i=0;
  54.        char control='s';
  55.        while(control=='s' && i<dimension)
  56.        {   printf("Ingrese el Id del Jugador:");
  57.            fflush(stdin);
  58.            scanf("%d",&J[i].idJugador);
  59.  
  60.            printf("Ingrese el nombre del Jugador:");
  61.            fflush(stdin);
  62.            scanf("%s",&J[i].nombre);
  63.  
  64.            printf("Ingrese la edad:");
  65.            fflush(stdin);
  66.            scanf("%d",&J[i].edad);
  67.  
  68.            printf("Ingrese en que id Equipo tiene:");
  69.            fflush(stdin);
  70.            scanf("%d",&J[i].idEquipo);
  71.  
  72.            printf("Desea ingresar otro jugador? (S/N)");
  73.            fflush(stdin);
  74.            scanf("%c",&control);
  75.  
  76.        }
  77.  
  78.    }
  79.  
  80. int MostrarEquipo  
  81.  
  82. int main()
  83. {
  84.    equipo equi;
  85.    jugador juga;
  86.    int validos=CargarEquipo(&equi,10);
  87.    CargarJugadores(&juga,11);
  88.  
  89.    return 0;
  90. }
  91.  

Mod: los códigos deben ir en etiquetas GeSHi


Título: Re: Ayuda con un problema en c
Publicado por: HardForo en 2 Junio 2016, 22:22 pm
El Id puede seria un autoincremental por lo general:

Jugador1 .. Id=1
JugadorN .. Id=N

Te serviria para identificar el equipo, por ejemplo si accedes por id al un arreglo y en ese orden de ideas, el Id no lo pondria dentro del struct, es simplemente el indice del arreglo donde metes objetos tipo struct.

PD: todo esto en general, te aclaro lei por arriba el problema (digamos las primeras 10 palabras)


Título: Re: Ayuda con un problema en c
Publicado por: AlbertoBSD en 3 Junio 2016, 14:08 pm
Yo digo que si debe de ir el ID en el struct.

Y si como te dice  el id debe de ser autoincrement.

Agrega una variable que sea como IDEquipoActual la inicializas en 1 y la agregas al ID del equipo que estes capturando en ese momento y la incrementas en Uno.

Incluso podrias usar la variable que usas para controlar el while... i

entonces quedaria aqui..

Código
  1. E[i].idEquipo = i+1;
  2.