FranciscoSoccol

Lista 07 - Exercicio 07

Aug 5th, 2013
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.73 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define MAX 50
  4.  
  5. struct TipoAluno{
  6.     char nome[40], matricula[5];
  7.     float media;
  8. };
  9.  
  10. struct TipoNota{
  11.     float prova1, prova2, trabalho, extra;
  12. };
  13. //prototipos
  14. void cadastro(struct TipoAluno alunos[],struct TipoNota notas[]);
  15. float calcularMedia(struct TipoNota notas[], int i);
  16. void exibeAlunos(struct TipoAluno alunos[], struct TipoNota notas[]);
  17. int quantidadeAlunos(struct TipoAluno alunos[]);
  18. float maiorMedia(struct TipoAluno alunos[]);
  19.  
  20. int main()
  21. {
  22.     int i;
  23.     struct TipoAluno alunos[MAX];
  24.     struct TipoNota notas[MAX];
  25.  
  26.     cadastro(alunos,notas);
  27.     for(i=0;i<MAX;i++)
  28.         alunos[i].media=calcularMedia(notas, i);
  29.     exibeAlunos(alunos,notas);
  30. }
  31. //cadastro
  32. void cadastro(struct TipoAluno alunos[], struct TipoNota notas[])
  33. {
  34.     int i;
  35.     for(i=0;i<MAX;i++)
  36.         {
  37.             printf("\nNome do aluno: ");
  38.             fflush(stdin);
  39.             gets(alunos[i].nome);
  40.             printf("Matricula: ");
  41.             fflush(stdin);
  42.             gets(alunos[i].matricula);
  43.             printf("Nota primeira prova(0 a 10): ");
  44.             scanf("%f", &notas[i].prova1);
  45.             printf("Nota segunda prova(0 a 10): ");
  46.             scanf("%f", &notas[i].prova2);
  47.             printf("Nota trabalho(0 a 10): ");
  48.             scanf("%f", &notas[i].trabalho);
  49.             printf("Nota extra(0 a 10): ");
  50.             scanf("%f", &notas[i].extra);
  51.         }
  52. }
  53. //calcular a media
  54. float calcularMedia(struct TipoNota notas[], int i)
  55. {
  56.     float media;
  57.     media=(notas[i].prova1+notas[i].prova2+notas[i].extra+notas[i].trabalho)/4;
  58.     if(media>10)
  59.         return 10;
  60.         else
  61.             return media;
  62. }
  63. //funçao que exibe
  64. void exibeAlunos(struct TipoAluno alunos[], struct TipoNota notas[])
  65. {
  66.     int i;
  67.     system("cls");
  68.     for(i=0;i<MAX;i++)
  69.     {
  70.         printf("Nome: %s\n", alunos[i].nome);
  71.         printf("Matricula: %s\n", alunos[i].matricula);
  72.         printf("Notas\nP1: %.2f\nP2: %.2f\nTrab: %.2f\nExt: %.2f\n", notas[i].prova1, notas[i].prova2, notas[i].trabalho, notas[i].extra);
  73.         printf("Media: %.2f\n\n", alunos[i].media);
  74.     }
  75.     printf("Quantidade de alunos com a media entre 7 e 10: %d\n", quantidadeAlunos(alunos));
  76.     printf("Maior media: %.2f\n", maiorMedia(alunos));
  77.  
  78. }
  79. //funçao calcular a quantidade de alunos acima da media
  80. int quantidadeAlunos(struct TipoAluno alunos[])
  81. {
  82.     int i, aux=0;
  83.     for(i=0;i<MAX;i++)
  84.         if(alunos[i].media>=7 && alunos[i].media<=10)
  85.             aux++;
  86.     return aux;
  87. }
  88. //maior media
  89. float maiorMedia(struct TipoAluno alunos[])
  90. {
  91.     float aux=0;
  92.     int i;
  93.     for(i=0;i<MAX;i++)
  94.         if(alunos[i].media>aux)
  95.             aux=alunos[i].media;
  96.     return aux;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment