Hola, necesito ayuda con este código!!
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++){
scanf("%s",&tabla
[i
].
nombre); scanf("%s",&tabla
[i
].
apellido); printf("Ingrese Codigo del alumno\n"); scanf("%d",&tabla
[i
].
cod);
while( tabla[i].cod<1000 || tabla[i].cod>6000){
printf("Error, Ingrese el codigo nuevamente\n"); scanf("%d",&tabla
[i
].
cod); }
printf("Ingrese Cohorte del alumno\n"); scanf("%d",&tabla
[i
].
cohorte); while( tabla[i].cohorte<2008 || tabla[i].cohorte>2013){
printf("Error, Ingrese la cohorte nuevamente\n"); scanf("%d",&tabla
[i
].
cohorte); }
printf("Ingrese la nota del Primer parcial\n"); scanf("%d",&tabla
[i
].
notas[0]); while(tabla[i].notas[0]>10 || tabla[i].notas[0]<0){
printf("Error, Ingrese la nota nuevamente\n"); scanf("%d",&tabla
[i
].
notas[0]); }
if (tabla[i].notas[0]<4){
printf("Ingrese la nota del recuperatorio\n"); scanf("%d",&tabla
[i
].
notas[1]); }
while(tabla[i].notas[1]>10 || tabla[i].notas[1]<0){
printf("Error, Ingrese la nota nuevamente\n"); scanf("%d",&tabla
[i
].
notas[1]); }
if (tabla[i].notas[1]<4 && tabla[i].notas[0]<4){
printf("Desea seguir agregando Alumnos s/n\n"); if(opcion=='s' || opcion=='S'){
z++;
continue;}
else {
return tabla[];}
}
printf("Ingrese la nota del segundo parcial\n"); scanf("%d",&tabla
[i
].
notas[2]); while(tabla[i].notas[2]>10 || tabla[i].notas[2]<0){
printf("Error, Ingrese la nota nuevamente\n"); scanf("%d",&tabla
[i
].
notas[2]); }
if(tabla[i].notas[2]<4){
printf("Ingrese la nota del recuperatorio\n"); scanf("%d",&tabla
[i
].
notas[3]); while(tabla[i].notas[3]>10 || tabla[i].notas[3]<0){
printf("Error, Ingrese la nota nuevamente\n"); scanf("%d",&tabla
[i
].
notas[3]); }
}
if(tabla[i].notas[3]<4 && tabla[i].notas[2]<4){
printf("Desea seguir agregando Alumnos s/n\n"); if(opcion=='s' || opcion=='S'){
z++;
continue;}
else {
return tabla[];}
}
if(tabla[i].notas[0]>=7 && tabla[i].notas[2]>=7){
printf("Alumno Promociono la materia\n"); printf("Desea seguir agregando Alumnos s/n\n"); if(opcion=='s' || opcion=='S'){
z++;
continue;}
else {
return tabla[];}
}
printf("Ingrese la nota del Final\n"); scanf("%d",&tabla
[i
].
notas[4]); while(tabla[i].notas[4]>10 || tabla[i].notas[4]<0){
printf("Error, Ingrese la nota nuevamente\n"); scanf("%d",&tabla
[i
].
notas[4]); }
if (tabla[i].notas[4]<4){
printf("Ingrese la nota del Recuperatorio del Final\n"); scanf("%d",&tabla
[i
].
notas[5]); while(tabla[i].notas[5]>10 || tabla[i].notas[5]<0){
printf("Error, Ingrese la nota nuevamente\n"); scanf("%d",&tabla
[i
].
notas[5]); }
}
if (tabla[i].notas[5]<4 && tabla[i].notas[4]<4){
}
i++;
printf("Desea seguir agregando Alumnos s/n\n"); if(opcion=='n' || opcion=='N'){
return tabla[];
}
}
return tabla[];
}