Título: Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. Publicado por: wonted en 21 Octubre 2022, 04:47 am Código
MOD: El código debe ir entre etiquetas de Código GeSHi Título: Re: Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. Publicado por: Lieutenant McFarley en 21 Octubre 2022, 10:52 am Código
En la línea 36: Código: alum[i][j].prom=(alum[i][j].cal[k]+alum[i][j].prom); Pienso que entre las líneas 31 y 32, antes del bucle en k debería asignársele un valor inicial cero: Código: alum[i][j].prom = 0; Por otro lado la variable prom de main (), línea 16, no parece usarse, ya que se utiliza el .prom del struct. Finalmente no veo, personalmente, la conveniencia de representar a los alumnos por una matriz bidimensional. A no ser que sea un ejercicio con esa exigencia o que se quiera representar fisicamente un aula tradicional con los alumnos en mesas distribuidas en un rectángulo, y que además la distribución coincida exactamente con un rectángulo y no falten mesas para rellenar la matriz completa. Personalmente, ya digo, creo que podria haberse usado un array lineal de struct. Título: Re: Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. Publicado por: K-YreX en 22 Octubre 2022, 17:36 pm Estás intentando guardar 3 (max) notas en un array de longitud 2 (cal)... :silbar: :silbar:
Además si estás usando un 'define' para guardar [max = 3], luego úsalo para calcular el promedio en lugar de dividir directamente entre 3. Y por otro lado, no estás liberando bien la matriz dinámica. Fíjate en cómo reservas la memoria pues para liberarla el proceso es el mismo. Lo que reservas con bucle, lo liberas con bucle y lo que reservas una vez, lo liberas una vez: Código
Título: Re: Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. Publicado por: wonted en 24 Octubre 2022, 05:24 am Muchas gracias, me ha servido mucho este y el otro comentario. Como duda adicional. ¿Estoy haciendo bien en usar el punto para referirme a la struct siendo que es memoria dinamica? En arreglos funciona con flechas pero con matrices me marco error.
Título: Re: Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. Publicado por: K-YreX en 24 Octubre 2022, 17:15 pm Muchas gracias, me ha servido mucho este y el otro comentario. Como duda adicional. ¿Estoy haciendo bien en usar el punto para referirme a la struct siendo que es memoria dinamica? En arreglos funciona con flechas pero con matrices me marco error. El uso de la flecha tal que: Código Es equivalente a hacer: Código
La flecha simplemente permite simplificar un poco las expresiones para que no quede tan engorroso. En este caso concreto, al ser una matriz, cuando haces: Código: matriz[i][j] Si usases aritmética de punteros para acceder a la matriz (si no me he equivocado, ambas líneas muestran exactamente lo mismo): Código Podrías simplificar la segunda expresión haciendo uso de la flecha: Código Pero como puedes ver, con matrices siempre es más sencillo utilizar los índices. Ya puestos, otro extra: Al momento de crear el struct, si utilizas typedef, no es necesario que asignes un primer nombre, bastaría con el del final. Poner un nombre al principio y otro al final sólo es necesario si quieres hacer referencia a la propia struct dentro de sí misma. Código Y el nombre mejor en singular, has creado una estructura, no un array de esa estructura. Luego ya si creas un array, llamas a la variable en plural: Código
Título: Re: Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. Publicado por: wonted en 25 Octubre 2022, 04:22 am Gracias! Entonces lo que he hecho en mi código no está mal para punteros...? :P
Título: Re: Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. Publicado por: K-YreX en 25 Octubre 2022, 10:40 am Por qué? No entiendo a qué te refieres :huh:
|