All pastes #2091512 Raw Edit

Mine

public text v1 · immutable
#2091512 ·published 2011-10-19 16:34 UTC
rendered paste body
#include <stdio.h>
#include <stdlib.h>
 
# define MAXIMO 5
 
typedef struct
 {
  int ra[MAXIMO];
  char nome[MAXIMO][50];
}tAluno;
 
//le os dados dos alunos 
void lerDados(tAluno *dados);
//ordena 
void ordena(tAluno *dados);
void imprimir(tAluno dados);

int tam;
 
 
int main(int argc, char *argv[])
{
  tAluno aluno;
  int opcao;
  
  tam=0;
 
  printf("--------------------------------------\n\n");
  printf("-----------Escolha a opcao:-----------\n\n");
  printf("1- Inserir um novo registro\n");
  printf("2- Listar os registros da tabela\n");
  printf("3- Sair\n");
  printf("--------------------------------------\n\n");
 
  do
 {
  printf("Informe a opcao 1, 2 ou 3: ");
  scanf("%d", &opcao);
  printf("\n");  
   
  switch (opcao)
  {
    case 1:      
      
      if ( tam == MAXIMO){
         printf("Voce ja inserio o maximo de alunos!!\n\n");
       } else{
          lerDados (&aluno);  
          ordena(&aluno);
          tam = tam+1;  
        }
      
    break;
     
    case 2:
    
     imprimir(aluno);
    break; 
    
    case 3:
        return(0);
        default:
          printf("Opcao invalida\n\n");
    break;  
  }
 }
 while (opcao != 3);
   
 
  system("PAUSE");     
  return 0;
}
 
void lerDados (tAluno *dados)
 { 
     
       
            
           fflush(stdin); 
           printf(" Digite o nome do aluno: ");
           gets(dados->nome[tam]);
           fflush(stdin);
           printf(" Digite o ra do aluno: ");
           scanf("%d", &dados->ra[tam]);
           printf("\n");
           
  
  }
  
  void ordena(tAluno *dados){
      int aux;
      int i,j;
      char aux2[50];
     
     for (i=0;i<tam;i++){
      for (j=0; j < tam-i; j++){      
      // Caso o elemento de posição menor for maior que o elemento seguinte, realiza a troca.
      if (dados->ra[j] > dados->ra[j+1]) { 
            aux = dados->ra[j+1];
            dados->ra[j+1] = dados->ra[j];
            dados->ra[j] = aux;
            strcpy(aux2, dados->nome[j+1]);
            strcpy( dados->nome[j+1], dados->nome[j]);
            strcpy( dados->nome[j], aux2);
            
        }
      }
    }
}
  
void imprimir(tAluno dados){
     
     int p;
     
     for( p=0; p<tam; p++){
            printf("%s      %d\n",dados.nome[p],dados.ra[p]);
        }   
        
}