duda con un ejercicio..

Iniciado por fer_fer_73, 2 Febrero 2011, 20:16 PM

0 Miembros y 1 Visitante están viendo este tema.

fer_fer_73

hola, disculpen, la verdad es que sopy nuevo y me exprese mal, no es que la tire asi nomas de vago, en el problema:

declarar una estructura de nombre alumnos para almacenar la siguiente informacion:
..nombre alumno
..legajo
..domicilio
..turno.
de cada uno de los 300 alumnos de un establecimiento. Luego de declararla asignar los siguientes datos en la 1º estructura: juan gomez, 123245, San Juan 1026, M.

lo que no entiendo es como hacer para llenar los datos de los 300 alumnos, es decir, lo hago con un  for (i=1;i<301;i++) y despues con 4 scanf y se la asigno a cada campo?

Muchas gracias y perdon por haber puesto asi nomas el ejercicio.
con el rock en las venas...

kasiko

#1
creas un array de 300 elementos de la estructura, y luego en el for vas rellenando ese array y ya los tienes almacenados en memoria.

:rolleyes:

PD: se me olvidaba, en c, es for(i=0;i<300;i++)
Nos vemos...


Oblivi0n

En este foro no se hacen tareas, te han bloqueado tu otro mensaje, en el que yo te deje una estructura a traves de la cual ya podrias hacer eso, que es mas de lo que mereces.

No hagas doble - post cuando infringes las normas, LEETE LAS NORMAS!

RyogiShiki

Cita de: Oblivi0n en  2 Febrero 2011, 20:47 PM
En este foro no se hacen tareas, te han bloqueado tu otro mensaje, en el que yo te deje una estructura a traves de la cual ya podrias hacer eso, que es mas de lo que mereces.

No hagas doble - post cuando infringes las normas, LEETE LAS NORMAS!

Si vas ha hacer doble post, almenos postea el codigo de lo que llevas hecho para poder ver tus avances en que fallas así podremos aconcejarte mejor sobre tus problemas...


fer_fer_73

#4
#include <stdio.h>
main ()
{
char c,k,m;
int i,l;
struct alumnos {
char nombre [30];
insigned int legajo [6];
char domicilio [15];
char turno [1];
}
for (i=0;i<300;i++)
{
printf ("nombre:\n");
scanf ("%c", &c);
nombre [i] = c;
printf ("legajo:\n");
scanf ("%d", &l);
legajo[i]= l;
printf ("domicilio:\n");
scanf ("%c", &k);
legajo [i] = k:
printf ("turno:\n");
scanf ("%c", &m);
turno [i]= m;
}



Lo que hice es esto, lo que no entiendo es como crear un arreglo que guarde todos estos datos, xq son de distinto tipo.

Muchas gracias a los que me contestaron bien, y no entiendo a los que me bardean, porque el otro dia tire el ejercicio asi nomas y esta bien q me digan que nos e puede hacer eso, pero alguien me dijo que ponga cual era mi duda, y escribo mi duda, y me siguen diciendo que no se hacen tareas, osea, si no me puedo sacar una duda para que es el foro? pense que era para podes sacarse dudas e interactuar con gente sobre el mismo tema...

Y no es una tarea, estoy preparando esta materia para la UTN de rosario. muchas gracias, saludos!
con el rock en las venas...

negux

de acuerdo a tu definicion de estructura,  solo es declarar un arreglo de esa estructura
algo asi

struct alumnos a[20];


con eso ya tienes un arreglo del tipo alumnos, que a su vez contiene diferentes tipos de datos, ahora para acceder a cada uno seria algo asi, por poner un ejemplo:

scanf("%s",a[0].nombre);
scanf("%s",a[0].turno);

eso lo puedes poner en un for


Garfield07


struct alumno [num_alum]
{
char nombre [30];
int edad;
int media;
char domicilio [50];
}


Etc


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

Oblivi0n

#7
#include <stdio.h>
int main ()
{
char c,k,m;
int i,l;
struct alumnos {
char nombre [30];
unsigned int legajo;
char domicilio [15];
char turno [1];
};

alumnos al[300];

for (i=0;i<300;i++)
{
printf ("nombre:\n");
scanf ("%c", &c);
al[i].nombre= c;
printf ("legajo:\n");
scanf ("%d", &l);
al[i].legajo= l;
printf ("domicilio:\n");
scanf ("%c", &k);
al[i].legajo= k;
printf ("turno:\n");
scanf ("%c", &m);
al[i].turno= m;
return 0;
}


puede que haya cosas mal, no lo he compilado ni nada...

P.D: Las estructuras es mejor declararlas fuera de las funciones si es posible, hace el codigo mucho mas legible

negux

ahi solo estarias leyendo un caracter, por eso puse

scanf("%s",a[0].nombre);
saludos