Programación General > Visual C++

 Estructuras

<< < (3/3)

alexancoC++:
Perfecto, ya no me da error!!!

Si tengo la siguiente estructura:


--- Código: Text --- struct asignatura{  char Nombre[LON];  int codigo;  float Nota;  int año;}; struct alumno{  char Nombre[LON];  long dni;  int Edad;  float media;  asignatura Asignatures[M];}Clase[N];  Y quiero que me devuelva la nota media de las asignaturas que tiene, tendría que sumar la nota de todas sus asiganturas con un for dentro de cada alumno, y luego calcular la media y pasarla a Classe.media??

SteelX:

--- Cita de: "alexancoC" --- Y quiero que me devuelva la nota media de las asignaturas que tiene, tendría que sumar la nota de todas sus asiganturas con un for dentro de cada alumno, y luego calcular la media y pasarla a Classe.media??
--- Fin de la cita ---
Sip. puedes usar cualquier loop para hallar la media.

alexancoC++:
Hola de nuevo!!!! Ya he acabado la practica. Pero al parecer cundo le paso los valores a la estructura assignatura no los debe leer bien. Me los acepta y no me da errores, pero al calcular la media de las notas no me encuentra ningun valor de assignatura.
Es posible que el problema este al llamar esta función? NO PUEDO UTILIZAR VARIABLES GLOBALES!!!
La función es la siguiente:


--- Código: Text --- void menu_assignatures(assignatura t[M]){  int opcio;   while(opcio!=3)  {    printf(&#34;Estas al menu Assignatures!&#092;n&#092;n&#34;);    printf(&#34;Quina opcio vols realitzar?&#092;n&#092;n&#34;);    printf(&#34;1. Introduir assignatura.&#092;n&#34;);    printf(&#34;2. Modificar assignatura.&#092;n&#34;);    printf(&#34;3. Sortir.&#092;n&#34;);    scanf(&#34;%d&#34;,&opcio);     switch(opcio)    {      case 1:                                  {      int codi_in=0,c=0,i=0,j=0,m=0;       printf(&#34;Entra el codi de l'assignatura:&#092;n&#34;);      scanf(&#34;%d&#34;,&codi_in);      c=buscar_codi(t,codi_in);      while(c==1)      {      printf(&#34;Assignatura ja introduida&#092;n&#34;);      printf(&#34;Torna a introduir el codi&#092;n&#34;);      scanf(&#34;%d&#34;,&codi_in);      c=buscar_codi(t,codi_in);      }      if(c==0)      {      if(i&#60;40)      {      t[i].codi=codi_in;      printf(&#34;Introdueix el nom de l'assignatura:&#092;n&#34;);      scanf(&#34;%s&#34;,t[i].Nom);      printf(&#34;Ara la nota de l'expedient:&#092;n&#34;);      scanf(&#34;%f&#34;,&t[i].Nota);      printf(&#34;I per ultim lany en que la va realitzar:&#092;n&#34;);      scanf(&#34;%d&#34;,&t[i].any);      i++;      }      else      {    printf(&#34;L'alumne no pot tenir mes assignatures&#092;n&#34;);      }      }                break;      }      case 2:      {      int busca_codi=0,b=0,i=0;   printf(&#34;De quina assignatura vols modificar la nota i l'any?&#092;n&#34;);      scanf(&#34;%d&#34;,&busca_codi);      b=buscar_codi(t,busca_codi);      if(b==1)      {      printf(&#34;Quina es la nova nota de l'alumne?&#092;n&#34;);      scanf(&#34;%d&#34;,&t[i].Nota);      printf(&#34;I el nou any?&#092;n&#34;);      scanf(&#34;%d&#34;,&t[i].any);      i++;      }      else      {      printf(&#34;Aquest codi no existeix!&#092;n&#092;n&#34;);      }      break;                    }      case 3:      {      break;      }    }  }}  
A esta función la llamo asi:

--- Código: Text --- menu_assignatures(Classe[i].Assignatures);  Y definida de la siguiente manera:

--- Código: Text --- void menu_assignatures(assignatura []);  
No se lo que puede pasar pero no debo hacer algo bien al llamar la función o dentro de ella.
Gracias de todos modos!!!!!
Saludos!

SteelX:
Bueno tengo 2 cosas.

1- No se Mucho catalan. casi 0.
2- Usa el depurador para ver si sigues conservando los datos

cuando pasas un array a una funcion este conserva los datos. pero el array esta dentro de uns estructura y eso puede generar problemas de conservacion de datos.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa