Necesito crear una estructura para estudiantes y funciones para ingresar alumnos y otra funcion para mostrar, el arreglo de la estructura debe ser segun el numero de estudiantes....
Este es mi codigo y tengo problemas para mostrar los datos NECESITO AYUDA URGENTE X FAVOR!!!!!
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct materias
{
char nom_materias[25];
int n[3];
float prom;
};
struct estudiante
{
char codigo[8];
char nombre[25];
char apellido[25];
char direccion[25];
int telefono[12];
int edad[3];
};
int ingresar_estudiantes(estudiante *A,materias *B);
void mostrar_estudiantes(estudiante *A,materias *B,int n);
int main()
{
estudiante iv;
materias jv;
int op,x=0,z=0;
int n=0,num;
do{
system("cls");
printf("\tPROGRAMA DE REGISTRO ESTUDIANTIL\n\n");
printf("Eliga una opcion del menu\n");
printf("1) Ingrese datos del estudiante: \n");
printf("2) mostrar datos del estudiante: \n");
printf("3) Buscar estudiante: \n");
printf("4) Salir \n");
printf("Ingrese una opcion: ");
scanf("%d",&op);
switch(op)
{
case 1:
z=ingresar_estudiantes(&iv,&jv);
break;
case 2:
mostrar_estudiantes(&iv,&jv,z);
break;
case 3:
break;
case 4:
printf("saliendo...\n");
break;
default:
printf("*****ERROR EN LA OPCION*****\n\n");
getch();
}
} while (op!=4);
}
int ingresar_estudiantes(estudiante *A,materias *B)
{
int op,x=0;
int n=0,num;
system("cls");
printf("INGRESE EL NUMERO DE ESTUDIANTES A REGISTRAR:");
scanf("%d",&n);
if (n<1)
{
printf("\nINGRESE AL MENOS 1 ESTUDIANTE");
printf("\nDESEA INTENTARLO DE NUEVO: S/N");
op=getch();
}
A=(estudiante*)malloc(sizeof(estudiante)*n);
for(int i=0;i<n;i++)
{
printf("Ingrese codigo del estudiante [%d]: ",i+1);
fflush(stdin);
scanf(" %[^\n]",A [i].codigo);
printf("Ingrese Nombres del estudiante [%d]: ",i+1);
fflush(stdin);
scanf(" %[^\n]",A [i].nombre);
printf("Ingrese apellidos del estudiante [%d]: ",i+1);
fflush(stdin);
scanf(" %[^\n]",A [i].apellido);
printf("Ingrese la direccion del estudiante [%d]: ",i+1);
scanf(" %[^\n]",A [i].direccion);
printf("Ingrese el telefono del estudiante [%d]: ",i+1);
scanf("%d",&A [i].telefono);
printf("Ingrese la edad del estudiante [%d]: ",i+1);
scanf("%d",&A [i].edad);
{
system("cls");
printf("\nINGRESE EL NUMERO DE MATERIAS A ESTUDIAR");
scanf("%d",&num);
printf("\nSOLO SE PUEDE ESTUDIAR DE 1 A 6 MATERIAS POR SEMESTRE");
system("pause");
} while(num<1||num>6);
B=(materias*)malloc(sizeof(materias)*num);
for(int y=0;y<num;y++)
{
printf("INGRESE LA MATERIA %d :",y+1);
fflush(stdin);
scanf("%s",B[i].nom_materias);
}
}
getch();
return n;
}
void mostrar_estudiantes(estudiante *A,materias *B,int n)
{
int x;
for(x=0;x<n;x++)
{
printf("EL CODIGO DEL ESTUIDANTE ES: %s",(A+x)->codigo);
printf("\nEL NOMBRE DEL ESTUIDANTE ES: %s",&(A+x)->nombre);
printf("\nEL APELLIDO DEL ESTUIDANTE ES: %s",&(A+x)->apellido);
printf("\nLA DIRECCION DEL ESTUIDANTE ES: %s",&(A+x)->direccion);
printf("\nEL TELEFONO DEL ESTUIDANTE ES: %d",*A[x].telefono);
printf("\nLA EDAD DEL ESTUIDANTE ES: %d",*A[x].edad);
system("pause");
}
}