elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Necesito ayuda. Estoy haciendo uso de matriz con struct y malloc pero el promedio no lee valores como debería. en: 21 Octubre 2022, 04:47 am
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define fila 3
  4. #define col 2
  5. #define max 3
  6. typedef struct infoAlum{
  7. char nombre[15];
  8. int matricula;
  9. float cal[2];
  10. float prom;
  11. }alumnos;
  12.  
  13. int main(){
  14. alumnos **alum;
  15. int i,j,k;
  16. float prom;
  17. alum = (alumnos**)malloc(fila*sizeof(alumnos*));
  18.  
  19. // For para columnas
  20. for(i=0;i<fila;i++){
  21. alum[i]=(alumnos*)malloc(col*sizeof(alumnos));
  22. }
  23.  
  24. printf("Introduzca los valores de la matriz\n");
  25.  
  26. for(i=0;i<fila;i++){
  27. for(j=0;j<col;j++){
  28. printf("Introduce el nombre del alumno numero [%d] [%d]\n",i+1,j+1);
  29. scanf("%s", alum[i][j].nombre);
  30. printf("Introduce la matricula del alumno numero [%d] [%d]\n",i+1,j+1);
  31. scanf("%d",&alum[i][j].matricula);
  32. for(k=0;k<max;k++){
  33. printf("Introduce la calificacion %d del alumno numero [%d] [%d]\n",k+1,i+1,j+1);
  34. scanf("%f",&alum[i][j].cal[k]);
  35. printf("%f\n",alum[i][j].cal[k]);
  36. alum[i][j].prom=(alum[i][j].cal[k]+alum[i][j].prom);
  37. printf("La suma en turno %d es %f\n",k+1, alum[i][j].prom);
  38. }
  39. alum[i][j].prom =(alum[i][j].prom)/3;
  40. printf("El promedio de %s es %f \n",alum[i][j].nombre, alum[i][j].prom);
  41. }
  42. }
  43. for(i=0;i<fila;i++){
  44. for(j=0;j<col;j++){
  45. printf("Nombre: [%s] \t",alum[i][j].nombre);
  46. printf("Matricula: [%d] \t",alum[i][j].matricula);
  47. printf("Promedio [%.2f] \n",alum[i][j].prom);
  48. }
  49. }
  50.  
  51.  
  52. // Liberando los apuntadores de memoria
  53. for (i=0;i<fila;i++){
  54. for(j=0;j<col;j++){
  55. free(alum[i]);
  56. free(alum);
  57. }
  58. }
  59. }

MOD: El código debe ir entre etiquetas de Código GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines