Facebook
From Bistre Flamingo, 2 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 95
  1. #include <stdio.h>
  2. #include <string.h>
  3. typedef struct{
  4.     int matricula;
  5.     char nome[10];
  6. } Aluno;
  7.  
  8. typedef struct{
  9.     int tamanho;
  10.     Aluno lista[10];
  11.     int utilizados;
  12. } Alunos;
  13.  
  14. void ordenar(Alunos *alunos){
  15.     Aluno aux;
  16.     int matriculaAux;
  17.     for(int i = alunos->utilizados-1; i >=0; i--){
  18.         if(alunos->lista[i].nome[0] < alunos->lista[i-1].nome[0]){
  19.             strcpy(aux.nome, alunos->lista[i-1].nome);
  20.             matriculaAux = alunos->lista[i-1].matricula;
  21.             strcpy(alunos->lista[i-1].nome, alunos->lista[i].nome);
  22.             alunos->lista[i-1].matricula = alunos->lista[i].matricula;
  23.             strcpy(alunos->lista[i].nome, aux.nome);
  24.             alunos->lista[i].matricula = matriculaAux;
  25.            
  26.         }
  27.     }
  28.     printf("ordenacao completa\n");
  29. }
  30.  
  31. void status(Alunos *alunos){
  32.     int porcentagem = (alunos->utilizados * 100)/alunos->tamanho;
  33.     printf("memoria ocupada: %i/%i ou %i%%\n", alunos->utilizados, alunos->tamanho, porcentagem);
  34.    
  35. }
  36.  
  37. void imprimir(Alunos *alunos){
  38.     printf("Alunos\n");
  39.     for(int i = 0; i < alunos->utilizados; i++){
  40.         printf("matricula: 00%i\nnome: ", alunos->lista[i].matricula);
  41.         printf("%s\n", alunos->lista[i].nome);
  42.     }
  43. }
  44.  
  45. void inserir(Alunos *alunos){
  46.     scanf("%i", &alunos->lista[alunos->utilizados].matricula);
  47.     scanf("%s", &alunos->lista[alunos->utilizados].nome);
  48.     printf("inserido 00%i\n", alunos->lista[alunos->utilizados].matricula);
  49.    
  50. }
  51.  
  52. int main(){
  53.     Alunos alunos;https://pastebin.pl/view/f971a13b
  54.     alunos.utilizados = 0;
  55.     char comando[10];
  56.     scanf("%i", &alunos.tamanho);
  57.    
  58.    
  59.     while(strcmp(comando, "sair")!=0){
  60.         scanf("%s", comando);
  61.         if(strcmp(comando, "inserir")==0){
  62.             inserir(&alunos);
  63.             alunos.utilizados += 1;
  64.         }if(strcmp(comando, "imprimir")==0){
  65.             imprimir(&alunos);
  66.         }if(strcmp(comando, "status")==0){
  67.             status(&alunos);
  68.         }if(strcmp(comando, "ordenar")==0){
  69.             ordenar(&alunos);
  70.         }
  71.     }
  72.    
  73.    
  74.     return 0;
  75. }