Structs em C


Registros (Estruturas) em C

tipo
   <registro> = registro
                  <campo1>: <tipo1>;
                  <campo2>: <tipo2>;
                  ...
                  <campoN>: <tipoN>;
                fim;
struct <nomeStruct>
{
   <tipo1>: <campo1>;
   <tipo2>: <campo2>
   ...
   <campoN>: <tipoN>;
}
struct regAluno {
   char nome[30];
   char matricula[8];
   float media;
   int frequencia;
};
// variavel global do tipo struct
struct regAluno aluno;
struct
{
   char nome[30];
   char matricula[8];
   float media;
   int frequencia;
} aluno1, aluno2; // duas variáveis declaradas
#include <stdio.h>
#include <strings.h>

struct regAluno {
   char nome[30];
   char matricula[8];
   float media;
   int frequencia;
};

// variavel global do tipo struct
struct regAluno aluno;

int main()
{
// struct regAluno aluno;

// struct {
//    char nome[30];
//    char matricula[8];
//    float media;
//    int frequencia;
// } aluno;

   int aprovados, reprovados;

   aprovados = reprovados = 0;

   printf("Nome:"); scanf("%s", aluno.nome);

   while (strcmp(aluno.nome, "fim") != 0)
   {
      printf("Matricula:"); scanf("%s", aluno.matricula);
      printf("Media:"); scanf("%f", &aluno.media);
      printf("Frequencia:"); scanf("%d", &aluno.frequencia);

      if ((aluno.media >= 7.0) && (aluno.frequencia >= 60))
         aprovados++;
      else
         reprovados++;

      printf("Nome:"); scanf("%s", aluno.nome);
   }

   printf("Total de aprovados: %d\n", aprovados);
   printf("Total de reprovados: %d", reprovados);
}