nikolas_serafini

Lista 7 - Exercício 1

Aug 10th, 2013
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.75 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX_ALUNOS 30
  4. #define TAM_NOME 50
  5.  
  6. struct TipoAluno {
  7. char nome[TAM_NOME];
  8. float media;
  9. };
  10.  
  11. float solicitaNota(void);
  12. int solicitaFalta(void);
  13. float calculaMedia(float nota1, float nota2, float pontos, int fal);
  14. float bonusMedia(int fal);
  15. void exibeAluno(struct TipoAluno aluno);
  16.  
  17. int main() {
  18.  
  19.     struct TipoAluno alunos[MAX_ALUNOS];
  20.     float nota1, nota2, pontos;
  21.     int i,faltas;
  22.    
  23.     for(i=0; i < MAX_ALUNOS; i++) {
  24.         printf("\nEntre com o nome do aluno: ");
  25.         fflush(stdin);
  26.         gets(alunos[i].nome);
  27.         printf("Entre com a primeira nota (0 a 10): ");
  28.         nota1 = solicitaNota();
  29.         printf("Entre com a segunda nota (0 a 10): ");
  30.         nota2 = solicitaNota();
  31.         printf("Entre com os pontos (0 a 10): ");
  32.         pontos = solicitaNota();
  33.         printf("Entre com a quantidade de faltas do aluno :\n");
  34.         faltas = solicitaFalta();
  35.         alunos[i].media = calculaMedia(nota1, nota2, pontos, faltas);
  36.     }
  37.  
  38.     printf("\n\nExibicao dos dados:");
  39.    
  40.     for(i=0; i < MAX_ALUNOS; i++)
  41.         exibeAluno(alunos[i]);
  42.  
  43.     return 0;
  44. }
  45.  
  46.  
  47. float solicitaNota(void) {
  48.  
  49.     float nota;
  50.     do {
  51.         scanf("%f", &nota);
  52.         if(nota < 0 || nota > 10) {
  53.             printf("Erro, valor deve ser de 0 a 10 \n");
  54.         }
  55.     }while(nota < 0 || nota > 10);
  56.  
  57.     return nota;
  58. }
  59.  
  60. int solicitaFalta(void) {
  61.  
  62.     int falta;
  63.     scanf("%d",&falta);
  64.     return falta;
  65. }
  66.  
  67. float calculaMedia(float nota1, float nota2, float pontos, int faltas) {
  68.     float media = (nota1 + nota2)/2 + pontos;
  69.    
  70.     if(media >= 10)
  71.         return 10;
  72.     else
  73.         return media+bonusMedia(faltas);
  74. }
  75.  
  76. void exibeAluno(struct TipoAluno aluno) {
  77.     printf("\n\nAluno: %s", aluno.nome);
  78.     printf("\nMedia: %.2f", aluno.media);
  79. }
  80.  
  81. float bonusMedia(int faltas) {
  82.     if(faltas == 0)
  83.         return 0.5;
  84.     else
  85.         return 0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment