Foros del Web » Programación para mayores de 30 ;) » C/C++ »

funcion que cargar struct y la devuleve cargada

Estas en el tema de funcion que cargar struct y la devuleve cargada en el foro de C/C++ en Foros del Web. Hola, necesito ayuda con este código!! tengo un problema con usar una funcion para cargar una struct y devolverla ya cargada @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C: ...
  #1 (permalink)  
Antiguo 07/04/2013, 07:15
 
Fecha de Ingreso: marzo-2013
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
funcion que cargar struct y la devuleve cargada

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
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6.        /*defino struct*/
  7. typedef struct {
  8.         char nombre[15],apellido[15];
  9.         int cod,cohorte,notas[6];
  10.         }T_tabla;
  11.        
  12.         /*creo arreglo de struct*/
  13.         T_tabla tabla[90];
  14.        
  15.         /*declaracion de funciones]*/
  16.  
  17. T_tabla carga_tabla(T_tabla tab[]);
  18.        
  19. int main(int argc, char *argv[])
  20. {
  21.     int max_log,elegir=0,z=0;
  22.     system("color 3F");
  23.  
  24.     T_tabla *tab;                        
  25.     tab= carga_tabla(tabla[]);
  26.     system("PAUSE");
  27.     return EXIT_SUCCESS;
  28. }
  29.  
  30.  
  31.              
  32.              
  33.              /*funcion cargar_tabla*/
  34. T_tabla carga_tabla(T_tabla tabla[]){
  35.    
  36.     int z=1,i=0;
  37.     char opcion;
  38.     for (int p=0;p<90;p++){
  39.          tabla[p].notas[0]= -1;
  40.          tabla[p].notas[1]= -1;
  41.          tabla[p].notas[2]= -1;
  42.          tabla[p].notas[3]= -1;
  43.          tabla[p].notas[4]= -1;
  44.          tabla[p].notas[5]= -1;
  45.          }
  46.    
  47.           for(i;i<90;i++){
  48.           printf("Ingrese Nombre\n");
  49.           scanf("%s",&tabla[i].nombre);
  50.           printf("Ingrese Apellido\n");
  51.           scanf("%s",&tabla[i].apellido);
  52.           printf("Ingrese Codigo del alumno\n");
  53.           scanf("%d",&tabla[i].cod);
  54.          
  55.           while( tabla[i].cod<1000 || tabla[i].cod>6000){
  56.               printf("Error, Ingrese el codigo nuevamente\n");
  57.               scanf("%d",&tabla[i].cod);        
  58.               }
  59.           printf("Ingrese Cohorte del alumno\n");
  60.           scanf("%d",&tabla[i].cohorte);
  61.           while( tabla[i].cohorte<2008 || tabla[i].cohorte>2013){
  62.               printf("Error, Ingrese la cohorte nuevamente\n");
  63.               scanf("%d",&tabla[i].cohorte);    
  64.               }
  65.           printf("Ingrese la nota del Primer parcial\n");
  66.           scanf("%d",&tabla[i].notas[0]);
  67.                     while(tabla[i].notas[0]>10 || tabla[i].notas[0]<0){
  68.                                   printf("Error, Ingrese la nota nuevamente\n");
  69.                                   scanf("%d",&tabla[i].notas[0]);
  70.                                   }
  71.           if (tabla[i].notas[0]<4){
  72.              printf("Ingrese la nota del recuperatorio\n");
  73.              scanf("%d",&tabla[i].notas[1]);
  74.              }
  75.                     while(tabla[i].notas[1]>10 || tabla[i].notas[1]<0){
  76.                                   printf("Error, Ingrese la nota nuevamente\n");
  77.                                   scanf("%d",&tabla[i].notas[1]);
  78.                                   }  
  79.           if (tabla[i].notas[1]<4 && tabla[i].notas[0]<4){
  80.              printf("Alumno Libre\n");
  81.              printf("Desea seguir agregando Alumnos s/n\n");
  82.              scanf("%c",&opcion);
  83.              if(opcion=='s' || opcion=='S'){
  84.              z++;
  85.              continue;}
  86.              else {
  87.                   return tabla[];}
  88.              }
  89.           printf("Ingrese la nota del segundo parcial\n");
  90.           scanf("%d",&tabla[i].notas[2]);
  91.                     while(tabla[i].notas[2]>10 || tabla[i].notas[2]<0){
  92.                                   printf("Error, Ingrese la nota nuevamente\n");
  93.                                   scanf("%d",&tabla[i].notas[2]);
  94.                                   }
  95.           if(tabla[i].notas[2]<4){
  96.              printf("Ingrese la nota del recuperatorio\n");
  97.              scanf("%d",&tabla[i].notas[3]);
  98.                        while(tabla[i].notas[3]>10 || tabla[i].notas[3]<0){
  99.                                   printf("Error, Ingrese la nota nuevamente\n");
  100.                                   scanf("%d",&tabla[i].notas[3]);
  101.                                   }
  102.              }
  103.           if(tabla[i].notas[3]<4 && tabla[i].notas[2]<4){
  104.              printf("Alumno Libre\n");
  105.              printf("Desea seguir agregando Alumnos s/n\n");
  106.              scanf("%c",&opcion);
  107.              if(opcion=='s' || opcion=='S'){
  108.              z++;
  109.              continue;}
  110.              else {
  111.                   return tabla[];}
  112.              }
  113.           if(tabla[i].notas[0]>=7 && tabla[i].notas[2]>=7){
  114.              printf("Alumno Promociono la materia\n");
  115.              printf("Desea seguir agregando Alumnos s/n\n");
  116.              scanf("%c",&opcion);
  117.              if(opcion=='s' || opcion=='S'){
  118.              z++;              
  119.              continue;}
  120.              else {
  121.                   return tabla[];}
  122.              }
  123.           printf("Ingrese la nota del Final\n");
  124.           scanf("%d",&tabla[i].notas[4]);
  125.                     while(tabla[i].notas[4]>10 || tabla[i].notas[4]<0){
  126.                                   printf("Error, Ingrese la nota nuevamente\n");
  127.                                   scanf("%d",&tabla[i].notas[4]);
  128.                                   }
  129.           if (tabla[i].notas[4]<4){
  130.              printf("Ingrese la nota del Recuperatorio del Final\n");
  131.              scanf("%d",&tabla[i].notas[5]);
  132.                        while(tabla[i].notas[5]>10 || tabla[i].notas[5]<0){
  133.                                   printf("Error, Ingrese la nota nuevamente\n");
  134.                                   scanf("%d",&tabla[i].notas[5]);
  135.                                   }
  136.              }
  137.           if (tabla[i].notas[5]<4 && tabla[i].notas[4]<4){
  138.              printf("Alumno Libre\n");
  139.              }
  140.           i++;
  141.           printf("Desea seguir agregando Alumnos s/n\n");
  142.           scanf("%c",&opcion);
  143.           if(opcion=='n' || opcion=='N'){
  144.                         return tabla[];
  145.                         }
  146.           }                                          
  147.           return tabla[];
  148.           }
  #2 (permalink)  
Antiguo 07/04/2013, 16:39
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 2 meses
Puntos: 94
Respuesta: funcion que cargar struct y la devuleve cargada

Hola!
Código C:
Ver original
  1. tab= carga_tabla(tabla[]);
No tenes que poner los corchetes, solo va el nombre del arreglo(lo mismo cuando haces el return en la funcion, solo pone el nombre)
Código C:
Ver original
  1. tab= carga_tabla(tabla);


Código C:
Ver original
  1. scanf("%s",&tabla[i].nombre);
  2.           printf("Ingrese Apellido\n");
  3.           scanf("%s",&tabla[i].apellido);
Para el ingreso de cadenas no es necesario poner adelante el "&", esta demas


Saludos

Etiquetas: funcion, int, struct
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:28.