Utilizando ESTRUTURA DE DADOS (REGISTRO) - abordagem simples e rápida

Publicado por Thiago 31/01/2006

[ Hits: 11.375 ]

Download ALUNO.C




Neste fonte implemento o conceito de registro (variável composta heterogênea) muito utilizado em algoritmos. Na linguagem C um registro é conhecido por estrutura.
Diferentemente das variáveis compostas homogêneas (vetores e matrizes) que só podem guardar um tipo de dado, as estruturas de dados guardam tipos de dados variados.

  



Esconder código-fonte

/* Programa: ALUNO.C
   Autor: thiagoamm 
   Data: 31/01/06 */

#include <stdio.h>

int main(void)
{
  struct cad_alu
  {
    char nome[41];
    float nota[4];
  };  
  
  struct cad_alu aluno[4];
  
  int i,j;
  float media;
  char resp;
    
  puts("\n");
  /* Lendo alunos */
  for (i = 0; i <= 3; i++)
  {
    printf("\nInforme o nome do %do. aluno: ",i + 1);
    fflush(stdin);
    fgets(aluno[i].nome,41,stdin);
    /* Lendo notas do aluno */
    for (j = 0; j <= 3; j++)
    {
      printf("Nota (nr%d). do aluno: ",j + 1);
      fflush(stdin);
      scanf("%f",&aluno[i].nota[j]);  
      while (aluno[i].nota[j] < 0 || aluno[i].nota[j] > 100)
      {
        printf("Nota (nr%d). do aluno: ",j + 1);
        fflush(stdin);
        scanf("%f",&aluno[i].nota[j]);
      }      
    }
  }
  
  /* Escrevendo alunos */
  for (i = 0; i <= 3; i++)  
  {
    printf("\nAluno nr.%d ..: %s",i + 1,aluno[i].nome);
    /* Escrevendo notas do aluno */
    for (j = 0; j <= 3; j++)
      printf("nota nr.%d ...: %6.2f\n",j + 1,aluno[i].nota[j]);
  }  
 
  printf("\nDeseja verificar quais alunos foram aprovados? ");  
  fflush(stdin);
  resp = getchar();
  
  if (resp == 's' || resp == 'S')
  {
    for (i = 0; i <= 3; i++)
    {
      media = 0;
      for (j = 0; j <= 3; j++)
      {
        media += aluno[i].nota[j];
      }
      media = media / 4;
      if (media >= 50)
        printf("\n--> Aluno nr%d. aprovado com media = %6.2f",i + 1,media); 
    }
    puts("\n");
  }
  return(0);
}

Scripts recomendados

Aloca String

Função switch q armazena sequencias

pontex1.c - Ponteiro

Semi Pronto (C++)

Hello world 3


  

Comentários
[1] Comentário enviado por thiagoamm em 31/01/2006 - 16:46h

Salve Salve galera vivaolinux!
Os mais atentos ao código devem ter notado que uso uma variável chamada média. Esta variável é sobrescrita para cada aluno, seria bacana também declarar um campo no registro para armazenar a média de cada aluno.


Contribuir com comentário