• Martes 21 de Mayo de 2024, 01:49

Autor Tema:  Error Con Dev-c++  (Leído 1306 veces)

jarcom

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Error Con Dev-c++
« en: Domingo 2 de Septiembre de 2007, 20:43 »
0
Hola,

tengo un programa que me da error en una línea (creo), a ver si me podéis echar un cable y encontráis el error, ya que he cambiado la sintaxis de mil formas y no consigo dar con ello.

struct alumno
{
       char nombre[30];
       int DNI;
       int edad;
       float media;
       strasigna asignaturas [40];
};





case 3: printf ("\n\tintroduce el codigo de la asignatura\n");
                         fflush (stdin);
                         scanf ("%i", &temcod);
                         aprobados (alumnos, nal, temcod);
                         break;





void aprobados (alumno A[], int a, int codigo)
{
   
     int i=0,j=0, cont=0, suma=0;
     float media;
     printf ("%i",a);    
            do
              {      
                      printf("pajaritos");
                      if (A.asignaturas[j].codi==codigo && A.asignaturas[j].nota >=5)    //creo q es aki donde falla
                                        {
                          do
                             {                    
                              printf ("\n\t %s\t", A.nombre);
                              suma += A.edad;
                              cont++;
                             } while ( j<40);
                     
                      }
                     
             
             i++;    
              } while (i<a);
     
     media = suma/cont;
     printf("\n\t la media de edad de los alumnos aprobados es %3.2f años\n", media);
}





Gracias!  ;)

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Re: Error Con Dev-c++
« Respuesta #1 en: Martes 4 de Septiembre de 2007, 17:46 »
0
De primeras, según veo, haces cont++, pero no j++, con lo que no terminaría nunca el bucle interior, no? Creo que puedes hacer esa función de una manera más limpia y claro, no?  B)

Suerte :comp:

cheroky

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Error Con Dev-c++
« Respuesta #2 en: Jueves 6 de Septiembre de 2007, 10:02 »
0
No esta muy claro si vas a procesar un array de estructuras o sin embargo un variable estructura, tampoco se ve la declaracion de strasigna. El operador [] en el parametro de una funcion, se define en terminos de un puntero.
La declaracion:
Código: Text
  1. void foo( int bar[])
  2.  
es eqivalente a
Código: Text
  1. void foo( int *bar)
  2.  

La funcion estandar fflush no esta definida para streams de entrada (lease stdin) si bien algunos compiladores para windows soportan esta extension, lo recomendable es no usarla de este modo, una posible solucion pasa por leer de la entrada el/los caracteres que quedasen en el buffer. Por ejemplo, aunque no soy partidario del uso de scanf, podriamos hacer:
Código: Text
  1. scanf (&#34;%i %*c&#34;, &temcod);
  2.  
de este modo "matcheamos" la variable y despues leemos el siguiente dato discriminandolo.

S2.
Nunca me haria socio de un club donde admitieran a alguien como yo.