Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/12/2014, 20:31
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 11 años, 3 meses
Puntos: 38
Respuesta: Programa con estructura en C

1º error esta en la linea de la declaracion de la funcion verDatos: void verDatos ( struct lista la, char *cdni ); que esta mas o menos en la 3º linea. Estas esperando un objeto del tipo struct lista. Como bien sabemos en c para poder hacer uso de un objeto del tipo que sea, ese objeto debe haber sido declarado anteriormente.
El primer problema se resuelve al mover la declaracion void verDatos ( struct lista la, char *cdni ); justo despues de haber creado la estructura lista.

Puedes poner la declaracion void verDatos ( struct lista la, char *cdni ); justo antes de main, y ya te funciona por que a esa altura si ya esta declarada la estructura lista:
void verDatos ( struct lista la, char *cdni );
int main ( int argc, char** argv ) {
//blablablalal...
}

2º-El error que veo, es en esta linea: if ( strcmp ( la.listadoAlumnos.dni, cdni ) == 0 ) { ...Dentro de la implementación de la función antes mensionada (void verDatos ( struct lista la, char *cdni )). Intentas hacer una comparacion de la.listadoAlumnos.dni con cdni, pero listadoAlumnos es un arreglo, y esta declarado como struct alumno listadoAlumnos[100], dentro de la clase lista.

Asi que la comparacion correcta es struct alumno strcmp ( la.listadoAlumnos[?].dni, cdni) donde ? es uno de los 100 valores que has declarado.

alumno strcmp ( la.listadoAlumnos.dni, cdni)
alumno strcmp ( la.listadoAlumnos[?].dni, cdni)

¿ves la diferencia? Tienes 100 variables listadoAlumnos y debes indicar a cual quieres comparar con cdni.

3º-Luego mas abajo en ese mismo if tienes el mismo error for ( j = 0; j < la.listadoAlumnos.nsignaturas; j++ ) {
Es for ( j = 0; j < la.listadoAlumnos[???].nsignaturas; j++ ) {

Es lo que vi. Espero que te sirva de ayuda =).

Edit
Las estructuras estan muy poco claras.
Miere eso:
Código C:
Ver original
  1. struct lista listaAdmitidos = {
  2.     {
  3.         {"juan"   , "334g", {{"física", 6}}, 1},
  4.         {"maria"  , "445h", {{"fisica", 2} , {"fundamentos1", 6}}, 2},
  5.         {"luis"   , "145g", {{"fisica", 6}}, 1},
  6.         {"pedro"  , "678p", {{"fisica", 3}}, 1},
  7.         {"lorena" , "745h", {{"fisica", 6} , {"fundamentos1", 6}} , 2},
  8.         {"pascual", "554g", {{"fisica", 6} , {"calculo", 6}, {"di bujo", 9}}, 3},
  9.     },
  10.     6
  11. };
Me duele la cabeza al ver semejante raleo.¿Eso funciona? XDD

Última edición por vangodp; 02/12/2014 a las 20:37