tengo un problema con usar una funcion para cargar una struct y devolverla ya cargada
Código C:
Ver original
#include <cstdlib> #include <iostream> using namespace std; /*defino struct*/ typedef struct { char nombre[15],apellido[15]; int cod,cohorte,notas[6]; }T_tabla; /*creo arreglo de struct*/ T_tabla tabla[90]; /*declaracion de funciones]*/ T_tabla carga_tabla(T_tabla tab[]); int main(int argc, char *argv[]) { int max_log,elegir=0,z=0; T_tabla *tab; tab= carga_tabla(tabla[]); return EXIT_SUCCESS; } /*funcion cargar_tabla*/ T_tabla carga_tabla(T_tabla tabla[]){ int z=1,i=0; char opcion; for (int p=0;p<90;p++){ tabla[p].notas[0]= -1; tabla[p].notas[1]= -1; tabla[p].notas[2]= -1; tabla[p].notas[3]= -1; tabla[p].notas[4]= -1; tabla[p].notas[5]= -1; } for(i;i<90;i++){ while( tabla[i].cod<1000 || tabla[i].cod>6000){ } while( tabla[i].cohorte<2008 || tabla[i].cohorte>2013){ } while(tabla[i].notas[0]>10 || tabla[i].notas[0]<0){ } if (tabla[i].notas[0]<4){ } while(tabla[i].notas[1]>10 || tabla[i].notas[1]<0){ } if (tabla[i].notas[1]<4 && tabla[i].notas[0]<4){ if(opcion=='s' || opcion=='S'){ z++; continue;} else { return tabla[];} } while(tabla[i].notas[2]>10 || tabla[i].notas[2]<0){ } if(tabla[i].notas[2]<4){ while(tabla[i].notas[3]>10 || tabla[i].notas[3]<0){ } } if(tabla[i].notas[3]<4 && tabla[i].notas[2]<4){ if(opcion=='s' || opcion=='S'){ z++; continue;} else { return tabla[];} } if(tabla[i].notas[0]>=7 && tabla[i].notas[2]>=7){ if(opcion=='s' || opcion=='S'){ z++; continue;} else { return tabla[];} } while(tabla[i].notas[4]>10 || tabla[i].notas[4]<0){ } if (tabla[i].notas[4]<4){ while(tabla[i].notas[5]>10 || tabla[i].notas[5]<0){ } } if (tabla[i].notas[5]<4 && tabla[i].notas[4]<4){ } i++; if(opcion=='n' || opcion=='N'){ return tabla[]; } } return tabla[]; }