• Lunes 29 de Abril de 2024, 04:43

Autor Tema:  Duda Sobre C  (Leído 1302 veces)

Gerx

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Duda Sobre C
« en: Martes 22 de Enero de 2008, 04:40 »
0
Hola a todos!
Me acabo de registrar porque soy principiante aprendiendo C y bueno, este foro es muy conocido y podemos hacer intercambios de informacion...
Bueno... la duda sobre C es sobre la utilizacion de estructuras.
El codigo es el siguiente:

Código: Text
  1. /*Estructuras I*/
  2. /*El siguiente programa crea varias estructuras y las usa de acuerdo
  3. con lo que imprime el usuario*/
  4.  
  5. #include <stdio.h>
  6. void main(void)
  7. {
  8.   /*Declaracion de variables:*/
  9.   /*Declaro la estructura:*/
  10.  
  11.   struct persona
  12.   {
  13.     /*Aca pongo los tipos de datos:*/
  14.     /*Tipos de datos de cadena de caracteres*/
  15.     char nombre[15];
  16.     char apellido[45];
  17.     char direccion[100];
  18.     char descripcion[100];
  19.     char e_mail[20];
  20.     /*Tipos de datos numericos:*/
  21.     int edad[3];
  22.     int codigo_postal[10];
  23.     int telefono[10];
  24.     int celular[30];
  25.   };
  26.  
  27.   int n_R=0;
  28.  
  29.   /*Inicio del programa*/
  30.   /*Doy instrucciones*/
  31.   printf("Escribi el numero de registros que vas a usar: ");
  32.   scanf("%d", &n_R);
  33.   /*Declaro la estructura:*/
  34.   struct persona MIPERSONA[n_R];
  35. }
  36.  

Bueno, el error radica en la linea en la cual se crea la instancia de la estructura, mas bien dicho el arreglo de la estructura, mi compilador, el Turbo C, dice que hay un error de sintaxis.
Linea:
Código: Text
  1. struct persona MIPERSONA[n_R];
  2.  
Si yo declaro la estructura fuera del main y la instancia de la estrucutar tambien, no hay errores pero no me serviria para lo que yo quiero que es que el usuario introduzca el numero de indices para el arreglo de la estructura...

Bueno...
Si alguien me puede ayudar se lo agradeceria...
Un saludo
German

giropau

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Duda Sobre C
« Respuesta #1 en: Domingo 27 de Enero de 2008, 21:05 »
0
O sea que quieres hacer un array de personas. Yo hice una cosa parecida pero con AnsiStrings.
Primero declaro la variable como puntero:
AnsiString *x;
...
x = new AnsiString[mida];

A mi me funciona. Pruebalo y nos cuentas.

fORU-

  • Miembro MUY activo
  • ***
  • Mensajes: 225
  • Nacionalidad: mo
    • Ver Perfil
Re: Duda Sobre C
« Respuesta #2 en: Domingo 27 de Enero de 2008, 21:57 »
0
mmm al parecer tiene que ser constante el valor que le quieres asignar al arreglo.
Si de algo te sirve puedes ver que valor toma como maximo un arreglo y ponerselo por default, inicializando todo como null y  despues puedes usar una variable para decir cuanto vas a caputrar.  Te dejo mas que un ejemplo en c es un ejemplo de mi logica

int captura=0;
int i;
char nombre[20];
struct persona Mipersona[LIMITE]={NULL};
printf("Numero de persona a capturar: ");
scanf("%d",&captura);
for(i=0;i<captura;i++)
{   gets(nombre);
   Mipersona.nombre=nombre
   ....
   ....   
}

mm la parte Mipersona.nombre=nombre esta mal, pero como te dije MAS QUE UN EJEMPLO DE C ES UN EJEMPLO DE MI LOGICA
atte:fORU-

menofcoyuca

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Duda Sobre C
« Respuesta #3 en: Viernes 8 de Febrero de 2008, 07:22 »
0
Cita de: "Gerx"
Hola a todos!
Me acabo de registrar porque soy principiante aprendiendo C y bueno, este foro es muy conocido y podemos hacer intercambios de informacion...
Bueno... la duda sobre C es sobre la utilizacion de estructuras.
El codigo es el siguiente:

Código: Text
  1. /*Estructuras I*/
  2. /*El siguiente programa crea varias estructuras y las usa de acuerdo
  3. con lo que imprime el usuario*/
  4.  
  5. #include &#60;stdio.h&#62;
  6. void main(void)
  7. {
  8.   /*Declaracion de variables:*/
  9.   /*Declaro la estructura:*/
  10.  
  11.   struct persona
  12.   {
  13.     /*Aca pongo los tipos de datos:*/
  14.     /*Tipos de datos de cadena de caracteres*/
  15.     char nombre[15];
  16.     char apellido[45];
  17.     char direccion[100];
  18.     char descripcion[100];
  19.     char e_mail[20];
  20.     /*Tipos de datos numericos:*/
  21.     int edad[3];
  22.     int codigo_postal[10];
  23.     int telefono[10];
  24.     int celular[30];
  25.   };
  26.  
  27.   int n_R=0;
  28.  
  29.   /*Inicio del programa*/
  30.   /*Doy instrucciones*/
  31.   printf(&#34;Escribi el numero de registros que vas a usar: &#34;);
  32.   scanf(&#34;%d&#34;, &n_R);
  33.   /*Declaro la estructura:*/
  34.   struct persona MIPERSONA[n_R];
  35. }
  36.  

Bueno, el error radica en la linea en la cual se crea la instancia de la estructura, mas bien dicho el arreglo de la estructura, mi compilador, el Turbo C, dice que hay un error de sintaxis.
Linea:
Código: Text
  1. struct persona MIPERSONA[n_R];
  2.  
Si yo declaro la estructura fuera del main y la instancia de la estrucutar tambien, no hay errores pero no me serviria para lo que yo quiero que es que el usuario introduzca el numero de indices para el arreglo de la estructura...

Bueno...
Si alguien me puede ayudar se lo agradeceria...
Un saludo
German
cambia el valor del identificador n_R=0 a n_R=1 o mayor y se termina el problema, recuerda que un arreglo no de puede declarar en cero (0)

saludos