elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al compilar con struct
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al compilar con struct  (Leído 1,719 veces)
romybe

Desconectado Desconectado

Mensajes: 7



Ver Perfil
Problema al compilar con struct
« en: 5 Diciembre 2014, 02:38 am »

Hola! Estoy teniendo este mensaje invalid types `int[int]' for array subscript con las líneas 66, 68, 70 y 72 cuando intento compilar el código. Honestamente no sé dónde pueda estar el problema. Espero que me puedan ayudar.

P.D.: estoy usando DEV C++ version 4.9.9.2


Código
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <string.h>
  4.  
  5. typedef struct {
  6.        char dia [9];
  7.        int hora_inicio;
  8.        int minutos_inicio;
  9.        int hora_finalizacion;
  10.        int minutos_finalizacion;
  11.        } horario_atencion;
  12.  
  13. typedef struct {
  14.        char nombre_medico [20];
  15.        char apellido_medico [20];
  16.        char dni_medico [8];
  17.        char especialidad [20];
  18.        char domicilio_medico [30];
  19.        char nro_consultorio [2];
  20.        char telefono_medico [15];
  21.        horario_atencion horario;
  22.        } medico;
  23.  
  24. void alta_medico (medico m[], int &lim);
  25.  
  26. void alta_medico (medico m[], int &lim)
  27. {
  28.     int cant_dias;
  29.  
  30.     while (lim>50)
  31.     {
  32.           printf ("Cuantos medicos desea ingresar?");
  33.           scanf ("%d", &lim);
  34.     }
  35.  
  36.     for (int i=0;i<lim;i++)
  37.     {
  38.         printf ("Ingrese el nombre del medico: ");
  39.         gets (m[i].nombre_medico);
  40.         fflush (stdin);
  41.         printf ("Ingrese el apellido del medico: ");
  42.         gets (m[i].apellido_medico);
  43.         fflush (stdin);
  44.         printf ("Ingrese el DNI del medico: ");
  45.         gets (m[i].dni_medico);
  46.         printf ("Ingrese la especialidad del medico: ");
  47.         gets (m[i].especialidad);
  48.         fflush (stdin);
  49.         printf ("Ingrese el domicilio del medico: ");
  50.         scanf ("%[^\n]", m[i].domicilio_medico);
  51.         fflush (stdin);
  52.         printf ("Ingrese el numero de consultorio del medico: ");
  53.         gets (m[i].nro_consultorio);
  54.         fflush (stdin);
  55.         printf ("Ingrese el telefono del medico: ");
  56.         gets (m[i].telefono_medico);
  57.         fflush (stdin);
  58.         printf (" Cuantos dias a la semana trabajara el medico: ");
  59.         scanf ("%d", &cant_dias);
  60.         for (int j=0;j<cant_dias;j++)
  61.         {
  62.             printf ("Ingrese el dia de la semana: ");
  63.             scanf ("%s", &m[i].horario.dia[j]);
  64.             fflush (stdin);
  65.             printf ("Ingrese la hora de comienzo de la consulta para el dia %s: ", m[i].horario.dia[j]);
  66.             scanf ("%d", &m[i].horario.hora_inicio[j]);
  67.             printf ("Ingrese los minutos de comienzo de la consulta para el dia %s: ", m[i].horario.dia[j]);
  68.             scanf ("%d", &m[i].horario.minutos_inicio[j]);
  69.             printf ("Ingrese la hora de finalizacion de la consulta para el dia %s: ", m[i].horario.dia[j]);
  70.             scanf ("%d", &m[i].horario.hora_finalizacion[j]);
  71.             printf ("Ingrese los minutos de finalizacion de la consulta para el dia %s: ", m[i].horario.dia[j]);
  72.             scanf ("%d", &m[i].horario.minutos_finalizacion[j]);
  73.         }
  74.     }
  75. }
  76.  


En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Problema al compilar con struct
« Respuesta #1 en: 5 Diciembre 2014, 02:52 am »

Viendo la logica de tu programa y usando el sentido cómun de lo que quieres lograr entonces no deberia de tener el campo "horario" de la estructura medico ser un array de 7 (7 dias supongo) además de tener un campo para determinar el numero de dias?


En línea

leobr6

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Problema al compilar con struct
« Respuesta #2 en: 5 Diciembre 2014, 04:04 am »

Si mal no entiendo lo que querés hacer, parece que lo que necesitas es un arreglo de horarios
Código
  1. typedef struct {
  2.        char nombre_medico [20];
  3.        char apellido_medico [20];
  4.        char dni_medico [8];
  5.        char especialidad [20];
  6.        char domicilio_medico [30];
  7.        char nro_consultorio [2];
  8.        char telefono_medico [15];
  9.        /* Esto es 1 solo horario, necesitarias un arreglo */
  10.        horario_atencion horario;
  11. } medico;

Podrías querer algo asi:
Código
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <string.h>
  4.  
  5. typedef struct {
  6.        char dia [9];
  7.        int hora_inicio;
  8.        int minutos_inicio;
  9.        int hora_finalizacion;
  10.        int minutos_finalizacion;
  11.        } horario_atencion;
  12.  
  13. typedef struct {
  14.        char nombre_medico [20];
  15.        char apellido_medico [20];
  16.        char dni_medico [8];
  17.        char especialidad [20];
  18.        char domicilio_medico [30];
  19.        char nro_consultorio [2];
  20.        char telefono_medico [15];
  21.        /* USAS UN ARREGLO DE HORARIOS */
  22.        horario_atencion *horarios;
  23.        } medico;
  24.  
  25. void alta_medico (medico m[], int &lim);
  26.  
  27. void alta_medico (medico m[], int &lim)
  28. {
  29.     int cant_dias;
  30.  
  31.     while (lim>50)
  32.     {
  33.           printf ("Cuantos medicos desea ingresar?");
  34.           scanf ("%d", &lim);
  35.     }
  36.  
  37.     for (int i=0;i<lim;i++)
  38.     {
  39.         printf ("Ingrese el nombre del medico: ");
  40.         gets (m[i].nombre_medico);
  41.         fflush (stdin);
  42.         printf ("Ingrese el apellido del medico: ");
  43.         gets (m[i].apellido_medico);
  44.         fflush (stdin);
  45.         printf ("Ingrese el DNI del medico: ");
  46.         gets (m[i].dni_medico);
  47.         printf ("Ingrese la especialidad del medico: ");
  48.         gets (m[i].especialidad);
  49.         fflush (stdin);
  50.         printf ("Ingrese el domicilio del medico: ");
  51.         scanf ("%[^\n]", m[i].domicilio_medico);
  52.         fflush (stdin);
  53.         printf ("Ingrese el numero de consultorio del medico: ");
  54.         gets (m[i].nro_consultorio);
  55.         fflush (stdin);
  56.         printf ("Ingrese el telefono del medico: ");
  57.         gets (m[i].telefono_medico);
  58.         fflush (stdin);
  59.         printf (" Cuantos dias a la semana trabajara el medico: ");
  60.         scanf ("%d", &cant_dias);
  61.  
  62.         /* CREAS EL ARREGLO DE HORARIOS */
  63.         m[i].horarios = new horario_atencion[cant_dias];        
  64.  
  65.         for (int j=0;j<cant_dias;j++)
  66.         {
  67.             printf ("Ingrese el dia de la semana: ");
  68.             scanf ("%s", &m[i].horarios[j].dia);
  69.             fflush (stdin);
  70.             printf ("Ingrese la hora de comienzo de la consulta para el dia %s: ", m[i].horarios[j].dia);
  71.             scanf ("%d", &m[i].horarios[j].hora_inicio);
  72.             printf ("Ingrese los minutos de comienzo de la consulta para el dia %s: ", m[i].horarios[j].dia);
  73.             scanf ("%d", &m[i].horarios[j].minutos_inicio);
  74.             printf ("Ingrese la hora de finalizacion de la consulta para el dia %s: ", m[i].horarios[j].dia);
  75.             scanf ("%d", &m[i].horarios[j].hora_finalizacion);
  76.             printf ("Ingrese los minutos de finalizacion de la consulta para el dia %s: ", m[i].horarios[j].dia);
  77.             scanf ("%d", &m[i].horarios[j].minutos_finalizacion);
  78.         }
  79.     }
  80. }

Espero te sirva. Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema al pasar una struct de C++
Programación Visual Basic
el_c0c0 0 2,232 Último mensaje 31 Marzo 2009, 00:34 am
por el_c0c0
Problema con struct dentro de libreria « 1 2 »
Programación C/C++
dkmarley 10 9,285 Último mensaje 23 Julio 2010, 16:51 pm
por dkmarley
[SOLUCIONADO]¿Como printear un valor de un struct dentro de otro struct?
Programación C/C++
Firos 0 5,011 Último mensaje 24 Marzo 2011, 13:47 pm
por Firos
problema con struct como parametro a funciones
Programación C/C++
ralymontes 1 3,190 Último mensaje 9 Noviembre 2011, 04:45 am
por rir3760
Problema con struct
Programación C/C++
Luchoz95 6 2,395 Último mensaje 27 Marzo 2013, 01:37 am
por durasno
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines