Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/05/2013, 16:53
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Estructura con dimensión variable en C

Solamente pon suficiente espacio en los arreglos.

Recuerda char arreglo[10] puede contener hasta 9 caracteres imprimibles por que necesitas dejar uno para indicar el fin de la cadena.


Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. // Pórtico con 5 nudos y 4 elementos
  6. //
  7. //         BC     CB   CE   EC
  8. //       B --------- C ------ E
  9. //       | BA     CD |
  10. //       |           |
  11. //       |           |
  12. //       |           |
  13. //       | AB     DC |
  14. //       A           D
  15.  
  16. struct elemento{
  17.        char nombre[5];
  18.        double fem;
  19.        double df;
  20. };
  21.  
  22. struct nudo{
  23.        char nombre[5];
  24.        struct elemento arriba;
  25.        struct elemento abajo;
  26.        struct elemento izquierda;
  27.        struct elemento derecha;
  28. };
  29.  
  30. int main()
  31. {
  32.     struct elemento barra2;
  33.     struct nudo nudo1;
  34.     struct nudo nudos[5]; //struct nudo nudos[scanf("%d", &numero)];
  35.    
  36.     strcpy(barra2.nombre, "BC");
  37.     barra2.fem = -17.5;
  38.     barra2.df = 0.47;
  39.    
  40.     strcpy(nudo1.nombre, "A");
  41.     strcpy(nudo1.arriba.nombre, "AB");
  42.     nudo1.arriba.fem = 20.5;
  43.     nudo1.arriba.df = 0.27;
  44.    
  45.     printf("%s\n", barra2.nombre);
  46.     printf("%4.2f\n", barra2.fem);
  47.     printf("%4.2f\n", barra2.df);
  48.    
  49.     printf("\n");
  50.    
  51.     printf("%s\n", nudo1.nombre);
  52.     printf("%s\n", nudo1.arriba.nombre);
  53.     printf("%4.2f\n", nudo1.arriba.fem);
  54.     printf("%4.2f\n", nudo1.arriba.df);
  55.  
  56.     return 0;
  57. }
Tu ejemplo funcional.