Advertisement
Guest User

Untitled

a guest
Jul 7th, 2016
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.11 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <locale.h>
  4. #define N 3
  5. #define MAX 50
  6.  
  7. typedef struct {
  8. int matricula;
  9. float vNotas[N]; // Armazena as 3 notas do ano.
  10. char nome[100];
  11. }tAluno;
  12.  
  13. typedef struct {
  14. tAluno aluno[MAX];
  15. int nAlunos; // Número de alunos matriculados no disciplina.
  16. }tDisciplina;
  17.  
  18. /*
  19. Objetivo: Preencher as informações de um aluno
  20. Parâmetros: não
  21. Retorno: as informações do aluno
  22. */
  23. tAluno preencheAluno1(){
  24.     tAluno a1;
  25.     int i;
  26.     printf("Digite a matricula: ");
  27.     scanf("%d%*c", &a1.matricula);
  28.     printf("Digite o nome: ");
  29.     fgets(a1.nome, 100, stdin);
  30.     a1.nome[strlen(a1.nome)-1]= '\0';
  31.     for(i=0;i<N;i++){
  32.         printf("Digite a nota da prova %d: ", i+1);
  33.         scanf("%f", &a1.vNotas[i]);
  34.     }
  35.     return a1;
  36. }
  37.  
  38. /*
  39. Objetivo: Preencher as informaçõe de um aluno
  40. Parâmetros: a1 - endereço do aluno
  41. Retorno: não
  42. */
  43. void preencheAluno2(tAluno *a1){
  44.     tAluno alu;
  45.     int i;
  46.     printf("Digite a matricula: ");
  47.     scanf("%d%*c", &alu.matricula);
  48.     printf("Digite o nome: ");
  49.     fgets(alu.nome, 100, stdin);
  50.     alu.nome[strlen(alu.nome)-1]= '\0';
  51.     for(i=0;i<N;i++){
  52.         printf("Digite a nota da prova %d: ", i+1);
  53.         scanf("%f", &alu.vNotas[i]);
  54.     }
  55.     *a1 = alu;
  56. }
  57.  
  58. float mediaDisciplina(tAluno a)
  59. {
  60.     int i, soma = 0;
  61.     for(i = 0; i < N; i++){
  62.         soma += a.vNotas[i];
  63.     }
  64.     return soma/N;
  65. }
  66.  
  67. tDisciplina preencheDisciplina(int numAlunos)
  68. {
  69.     tDisciplina d1;
  70.     int i;
  71.     for(i = 0; i < numAlunos; i++){
  72.            d1.aluno[i] = preencheAluno1(); 
  73.     }
  74.     return d1;
  75. }
  76.  
  77. void mostraDisciplina(tDisciplina d1)
  78. {
  79.     int i;
  80.     for(i = 0; i < d1.nAlunos; i++)
  81.     {
  82.         printf("Matricula: %d\n", d1.aluno[i].matricula);
  83.         printf("Nome: %s\n", d1.aluno[i].nome);
  84.         printf("Média: %.2f\n", mediaDisciplina(d1.aluno[i]));
  85.     }
  86. }
  87.  
  88. int main(){
  89.     setlocale(LC_ALL, "Portuguese");
  90.     tDisciplina pc1;
  91.     printf("Digite a quantidade de alunos: ");
  92.     scanf("%d", &pc1.nAlunos);
  93.     while(pc1.nAlunos > 50)
  94.     {
  95.         printf("Número de alunos ultrapassado! Por favor digite no máx 50 alunos: ");
  96.         scanf("%d", &pc1.nAlunos);     
  97.     }
  98.     preencheDisciplina(&pc1.nAlunos);
  99.     mostraDisciplina(pc1);
  100.     return 0;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement