| Miscelánea > OFF-TOPIC |
| Soluciona tus problemas informáticos! |
| << < (446/699) > >> |
| >>- Dj SuSi -->:
Bueno, pues dado ke no me keda otra, miraré de ir mañana a por un disco duro externo y seguir los pasos ke ha dicho Hardcorian, a ver ke tal :) Gracias a todos! ;) |
| Dj Ben PM:
Alguien entiende de c++? |
| Sanx:
--- Cita de: Dj Ben PM en 15/12/09, 19:19:48 pm ---Alguien entiende de c++? --- Fin de la cita --- Un poquito... |
| Dj Ben PM:
typedef struct { char nom[20]; char cog1[20]; char cog2[20]; int edat; int curs; int vegades_m; int notes[9]; }alumnes; typedef struct { char nom[20]; char nom_professor[20]; int curs; }assignatures; int validarn(int b); alumnes modificafitxaalumnes(alumnes a); alumnes modificafitxanotes(alumnes a); assignatures altafitxaassignatures(assignatures b); alumnes mitjadenotes (alumnes a); alumnes al[10]={ {"ruben","gonzalez","cabrerizo",19,1,1,{1,1,1,1,1,1,1,1,1}}, {"a","aa","aaa",19,2,2,{0,0,0,0,5,5,6,6,1}}, {"c","bb","bbb",19,1,1,{0,0,0,0,0,0,0,0,0}}, {"d","dd","ddd",19,1,1,{0,0,0,0,0,0,0,0,0}}, {"e","ee","eee",19,1,1,{0,0,0,0,0,0,0,0,0}}, {"f","ff","fff",19,2,1,{0,0,0,0,0,0,0,0,0}}, {"g","gg","ggg",19,1,1,{0,0,0,0,0,0,0,0,0}}, {"h","hh","hhh",19,1,1,{0,0,0,0,0,0,0,0,0}}, {"i","ii","iii",19,1,1,{0,0,0,0,0,0,0,0,0}}, {"j","jj","jjj",19,1,1,{0,0,0,0,0,0,0,0,0}}}; assignatures as[9]={ {"Mates","Joan",1}, {"Angles","Alba",1}, {"Tecno","Joana",1}, {"Socials","Maria",1}, {"Musica","Pepi",2}, {"Naturals","Josefa",2}, {"Fisica","Lucas",2}, {"Quimica","Antonio",2}, {"Catala","Mauricia",2} }; int i=0; int numalumne=0; int numassignatures=0; int numfitxamod; int aprovat=0; int suspes=0; int funcio; int mitja=0; Bueno es lo que estoy haciendo ahora en el cole y necesito hacer la media de 'assignatures' de los alumnos que tengan el mismo curso. Es decir yo tengo puesto esto en la funcion: alumnes mitjadenotes (alumnes a) { mitja=0; for (i=0; i<9; i++) { if (a.curs == as.curs) { mitja = a.notes; } } printf("La nota mitjana es: %i ", mitja); getch(); printf("\n"); } Pero con esto solo me sale la ultima nota. Estoy encallado aqui, y no pregunto al profe porque si lo hacemos solos la nota es mas buena XD |
| Sanx:
Veo un par de errores así a primera vista : 1- La i que va incrementando ha de ir incrementando el vector de notas, para que cada repetición del bucle, cambie la nota que suma, para que las sume todas. Al pasarle solo "a.notes" le pasas la dirección 0 del vector de notas, es decir la primera nota, y también le estás pasando todo el rato la primera asignatura. Es decir tu bucle lo único que hace es comparar el curso de tu alumno con el primer curso de la primera asignatura. Tendrías que poner el vector [ i], para que a cada incremento de "i", te vaya cambiando la asignatura con la que lo compara, y la nota correspondiente. 2- La mitja si te fijas, con lo que has puesto, lo único que hace es igualarla a la nota correspondiente, para hacer una media, habria que ir sumando todas las notas y dividirlo por el número de notas, si he entendido bien lo que pide, no? Y aún así, la media no es entera, por lo que definiría la media como un float pero bueno... Solución propuesta: void mitjadenotes (alumnes a) /* No devuelve ningún alumnes, no hay ningún return, luego es void la función */ { mitja=0; for (i=0; i<9; i++) { if (a.curs == as[ i].curs) /* A medida que incremente "i", irá comparando con la siguiente asignatura */ { mitja += a.notes[ i]; /*Incrementa mitja en la nota correspondiente*/ mitja = mitja / 9; } } printf("La nota mitjana es: %i ", mitja); getch(); printf("\n"); } No se si es exactamente esto lo que pide, pero es lo que he interpretado..., ya me dirás :D Aún así, para probar si funciona, deberías probarlo con el segundo alumno el "a", porque el resto, devuelva la primera, última nota, o la media, devolverá siempre lo mismo... |
| Navegación |
| Índice de Mensajes |
| Página Siguiente |
| Página Anterior |