Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2014, 14:39
TriN
 
Fecha de Ingreso: enero-2014
Mensajes: 47
Antigüedad: 10 años, 11 meses
Puntos: 0
Problemas al imprimir un arreglo de estructuras

Buenas tardes amigos de la comunidad forosweb, tengo un pequeño problema me han mandando a crear un pequeño sistema para agregar personas eliminar, modificar,etc,etc pues bien estoy empezando a armarlo poco a poco xD pero me consegui con un error que lo he revisado y cambiado varias veces pero no consigo el error el programa scanea los datos sin problemas he probado imprimirlo en otra parte del programa e imprimir los datos del arreglo sin problema pero al pedir que me muestre todos los datos ingresados en la opcion 2 solo me muestra espacios vacios dejo mi codigo:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4.  
  5.    typedef struct
  6.       {
  7.               char nombre[30];
  8.               char apellido[30];
  9.               int edad;
  10.               char deporte [30];
  11.               int codigo;
  12.               }datos;
  13.              
  14.               datos dat[10];
  15. void menu(void);
  16. main()
  17. {
  18.  
  19.               menu();
  20. }
  21. void menu(void)
  22. {
  23.  
  24.      int r,a,b,noa,i,acum;
  25.      char re;
  26.      do
  27.      {
  28.      acum=0;
  29.      a=1;
  30.      b=3;
  31.    puts("Bienvenido a el programa TEST \n Escoja una opcion para continuar\n\n");
  32.    puts("1-Agregar atleta\n");
  33.    puts("2-Consultar atletas\n");
  34.    puts("3-Eliminar  atletas\n");
  35.    puts("4-Modificar de forma individual\n");
  36.    puts("5-Modificar de forma general\n");
  37.    scanf("%d",&r);
  38.  
  39.       switch(r)
  40.           {
  41.              case 1:
  42.              system("cls");
  43.              puts("Cuantos atletas desea agregar");
  44.              scanf("%d",&noa);
  45.              system("cls");
  46.  
  47.              printf("Nombre\t\t");
  48.              printf("Apellido\t");
  49.              printf("Edad\t\t");
  50.              printf("Deporte\t\t");
  51.              printf("Codigo \t\t");
  52.               for (i=0;i<noa;i++)
  53.                  {
  54.                gotoxy(a,b);scanf("%s",&dat[i].nombre);
  55.                a+=17;
  56.                gotoxy(a,b);scanf("%s",&dat[i].apellido);
  57.                a+=17;
  58.                gotoxy(a,b);scanf("%d",&dat[i].edad);
  59.                a+=15;
  60.                 gotoxy(a,b);scanf("%s",&dat[i].deporte);
  61.                 a+=16;
  62.                  gotoxy(a,b);scanf("%d",&dat[i].codigo);
  63.                  a=1;
  64.                  b+=2;
  65.                  acum=acum+1;
  66.                  }
  67.                          break;
  68.              case 2:
  69.              system("cls");
  70.              printf("Nombre\t\t");
  71.              printf("Apellido\t");
  72.              printf("Edad\t\t");
  73.              printf("Deporte\t\t");
  74.              printf("Codigo \t\t");
  75.              printf("\n");
  76.  
  77.  
  78.              for (i=0;i<acum;i++)
  79.              {
  80.  
  81.               printf("%s\t\t",dat[i].nombre);
  82.  
  83.               printf("%s\t",dat[i].apellido);
  84.  
  85.               printf("%d\t\t",dat[i].edad);
  86.  
  87.               printf("%s\t\t",dat[i].deporte);
  88.  
  89.               printf("%d\t\t",dat[i].codigo);
  90.  
  91.               printf("\n");
  92.                 }
  93.  
  94.                  getch();
  95.  
  96.                  break;
  97.  
  98.          }
  99.  
  100.                      system("cls");
  101.                  printf("Desea regresar al menu principal o salir del programar presione s para continuar");
  102.                  scanf("%s",&re);
  103.                  }
  104.                  while(re=='s');
  105.  
  106.    getch();
  107.  
  108.  
  109.      }


Código C:
Ver original
  1. for (i=0;i<acum;i++)
  2.              {
  3.  
  4.               printf("%s\t\t",dat[i].nombre);
  5.  
  6.               printf("%s\t",dat[i].apellido);
  7.  
  8.               printf("%d\t\t",dat[i].edad);
  9.  
  10.               printf("%s\t\t",dat[i].deporte);
  11.  
  12.               printf("%d\t\t",dat[i].codigo);
  13.  
  14.               printf("\n");
  15.                 }
En esta parte del codigo es que no me imprime los datos ingresados probe imprimiendo a parte algun miembro de la estructura y me imprime el dato sin problemas que podria ser? que me aconsejan gracias de antemano.