Advertisement
Magnect

Struct

May 29th, 2019
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.55 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct{
  6.     char nome[255];
  7.     int num_matricula, status_matricula, status_mensalidade;
  8.     double mensalidade;
  9. }Aluno;
  10.  
  11. void exibir(Aluno *alunos, int numero){
  12.     printf("\nID: %i\n", alunos[numero].num_matricula);
  13.     printf("Nome: %s\n", alunos[numero].nome);
  14.     printf("Mensalidade: R$%.2lf", alunos[numero].mensalidade);
  15.     if(alunos[numero].status_mensalidade == 0)
  16.         printf(" (EM ABERTO)\n");
  17.     else
  18.         printf(" (PAGO)\n");
  19.  
  20.     if(alunos[numero].status_matricula == 1)
  21.         printf("Status: ATIVA\n");
  22.     else
  23.         printf("Status: TRANCADA\n");
  24.  
  25.     printf("\n===============================\n");
  26. }
  27.  
  28. void alocar(Aluno *alunos, int numero){
  29.     alunos = realloc(alunos, sizeof(Aluno)*numero);
  30. }
  31.  
  32. void preencher_Struct(Aluno *alunos, int numero){
  33.     setbuf(stdin, NULL);
  34.  
  35.     printf("Nome: ");
  36.     fgets(alunos->nome, 255, stdin);
  37.     alunos->nome[strlen(alunos->nome)-1] = '\0';
  38.  
  39.     setbuf(stdin, NULL);
  40.  
  41.     printf("Mensalidade: ");
  42.     scanf("%lf", &alunos->mensalidade);
  43.  
  44.     alunos->num_matricula = numero;
  45.     alunos->status_matricula = 1;
  46.     alunos->status_mensalidade = 0;
  47. }
  48.  
  49. int main(){
  50.     int numero = 0, c, k;
  51.     Aluno *alunos;
  52.  
  53.     alunos = malloc(sizeof(Aluno));
  54.     for(c = 0; c < 3; c++){
  55.         alocar(alunos, c+1);
  56.         preencher_Struct(&alunos[c], c+1);
  57.         exibir(alunos, c);
  58.     }
  59.  
  60.     printf("\n\n");
  61.     for(c = 0; c < 3; c++)
  62.         exibir(alunos, c);
  63.     printf("\n");
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement