Advertisement
Guest User

Untitled

a guest
Jan 30th, 2015
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <limits.h>
  3. #define N_ALUNOS 6
  4. /// ESSE DEFINE é mesmo que constante so que com conceito diferente (procura)
  5.  
  6.  
  7. /***********************************************
  8. TODAS AS MODIFICAÇÕES ACOMPANHAM COMENTÁRIOS !
  9. ************************************************/
  10.  
  11.  
  12.  
  13. /*4. Faуa um programa que processe as informaушes abaixo,
  14. sendo que cada linha representa um registro de aluno com o nome e suas notas.
  15. O programa deverр mostrar a mжdia de cada aluno, com seu nome, e a mжdia da turma.
  16. Alжm disso, o programa deverр mostrar o melhor aluno da turma.
  17. Luiz 5 7 4
  18. Paulo 5 6 7
  19. Maria 3 5 2
  20. Luiza 4 5 6
  21. Luiza 4 5 6
  22. Fabiana 2 6 4
  23. */
  24.  
  25. const int numNotas = 3;
  26.  
  27. typedef struct {
  28. char nome[30];
  29. int notas[3];
  30. float media;
  31. } tp_regAlunos;
  32.  
  33. //void mostrar_regAlunos(tp_regAlunos *a[]){
  34. // Array já um ponteiro !
  35. /***************************************************
  36. Struct Aluno *aluno;
  37. aluno->nota
  38.  
  39.  
  40. Struct Aluno[]
  41. Aluno[0].nota
  42.  
  43. ****************************************************/
  44. void mostrar_regAlunos(tp_regAlunos a[]){
  45.  
  46.  
  47. // simplificar declaração
  48. int i,j,n = 0;
  49. float mg;
  50. float media_geral = 0;
  51. for(i = 0; i<N_ALUNOS; i++){
  52. printf("Aluno: %s\n", a[i].nome);
  53. n=0; // vamos limpar os valores anteriores ne !
  54. for(j = 0; j < numNotas; j++){
  55. // VOCE ta colocando um vetor como inteiro "%d"...
  56. // aqui poderia até dar segment default
  57. //printf("Notas: %d, %d, %d\n", a[j].notas);
  58. //Entendi que você quer usar for, mas pensa em uma forma melhor de fazer isso
  59. //coloca "notas:" do lado de fora, e repete o loop para fazer X,X,X
  60. printf("Notas: %d, %d, %d\n", a[i].notas[0],a[i].notas[1],a[i].notas[2]);
  61. //n =+ a[j].notas[j];
  62. // você quis dizer +=
  63. n += a[i].notas[j];
  64. }
  65. //a[j].media = n / numNotas;
  66. // você quis dizer I
  67. a[i].media = n / numNotas;
  68. printf("Media: %.2f\n", a[i].media);
  69. //mg =+ a[i].media;
  70. // você quis dizer +=
  71. mg += a[i].media;
  72. }
  73. media_geral = mg / N_ALUNOS;
  74. printf("Media geral da turma = %.2f\n", media_geral);
  75. }
  76.  
  77. //void mostrar_Melhor(tp_regAlunos *a){
  78. // já é um ponteiro
  79. void mostrar_Melhor(tp_regAlunos a[]){
  80. int i;
  81. float melhor;
  82. melhor = INT_MIN;
  83. char nomeMelhor[30];
  84. for(i = 0; i < N_ALUNOS; i++){
  85. //if (a[i]->media > melhor){
  86. if (a[i].media > melhor){
  87. melhor = a[i].media;
  88. //nomeMelhor = a[i]->nome;
  89. strcpy(nomeMelhor,a[i].nome);
  90. }
  91. }
  92. printf("O melhor aluno foi %s\n", nomeMelhor);
  93. }
  94.  
  95. main(){
  96.  
  97. tp_regAlunos aluno[N_ALUNOS] = {{"Luiz",{5,7,4}},
  98. {"Paulo",{5,6,7}},
  99. {"Maria",{8,5,2}},
  100. {"Luiza",{4,5,6}},
  101. {"Felipe",{8,9,6}},
  102. {"Fabiana",{7,6,4}}};
  103. // mais ou menos funcionando
  104. mostrar_regAlunos(&aluno);
  105. mostrar_Melhor(&aluno);
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement