fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. struct Aluno{
  6.  
  7. int matricula;
  8. float p1;
  9. float p2;
  10. float p3;
  11. float t1;
  12. float t2;
  13. } ;
  14.  
  15. void aloca(int N){
  16. struct Aluno *pAluno;
  17. pAluno = (struct Aluno *) malloc(sizeof(struct Aluno) * N);
  18.  
  19. if (pAluno==NULL){
  20. printf("Memoria INSUFICIENTE");
  21. exit(0);
  22. }
  23. int i;
  24. for(i=0; i<N; i++) {
  25. printf(" Digite a matricula do aluno %d: ",i);
  26. scanf("%d", &pAluno[i].matricula);
  27. printf(" Digite a nota da prova 1 do aluno %d: ",i);
  28. scanf("%f", &pAluno[i].p1);
  29. printf("\n Digite a nota da prova 2 do aluno %d: ",i);
  30. scanf("%f", &pAluno[i].p2);
  31. printf("\n Digite a nota da prova 3 do aluno %d: ",i);
  32. scanf("%f", &pAluno[i].p3);
  33. printf("\n Digite a nota do trabalho 1 do aluno %d: ",i);
  34. scanf("%f", &pAluno[i].t1);
  35. printf("\n Digite a nota do trabalho 2 do aluno %d: ",i);
  36. scanf("%f", &pAluno[i].t2);
  37. }
  38.  
  39. for(i=0; i<N; i++) {
  40. printf("matricula: %d prova 1: %f prova 2: %f prova 3: %f trabalho 1: %f trabalho 2: %f\n\n",
  41. pAluno[i].matricula, pAluno[i].p1, pAluno[i].p2, pAluno[i].p3, pAluno[i].t1, pAluno[i].t2);
  42. }
  43. free(pAluno);
  44. }
  45.  
  46. int main (){
  47.  
  48. // não precisa dessa variável
  49. // struct Aluno daluno;
  50. int N;
  51.  
  52. printf("Digite a quantidade de N alunos: ");
  53. scanf("%d",&N);
  54. aloca (N);
  55. return 0;
  56. }
Success #stdin #stdout 0s 9424KB
stdin
2
123
8.1
9.5
6.0
7.2
8.5
456
2.5
3.3
4.3
9.9
6.7
stdout
Digite a quantidade de N alunos:  Digite a matricula do aluno 0:  Digite a nota da prova 1 do aluno 0: 
 Digite a nota da prova 2 do aluno 0: 
 Digite a nota da prova 3 do aluno 0: 
 Digite a nota do trabalho 1 do aluno 0: 
 Digite a nota do trabalho 2 do aluno 0:  Digite a matricula do aluno 1:  Digite a nota da prova 1 do aluno 1: 
 Digite a nota da prova 2 do aluno 1: 
 Digite a nota da prova 3 do aluno 1: 
 Digite a nota do trabalho 1 do aluno 1: 
 Digite a nota do trabalho 2 do aluno 1: matricula: 123 prova 1: 8.100000 prova 2: 9.500000 prova 3: 6.000000 trabalho 1: 7.200000 trabalho 2: 8.500000

matricula: 456 prova 1: 2.500000 prova 2: 3.300000 prova 3: 4.300000 trabalho 1: 9.900000 trabalho 2: 6.700000