Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. #define MAX_ELEM 100
  5.  
  6.  
  7. //Definição do logaritmo de 2
  8. //int Log2(int x){
  9. //int a;
  10.  
  11. //a= ((log(x)/log(2)));
  12.  
  13.  
  14. //}
  15.  
  16. //Declaração de estruturas
  17.  
  18. typedef struct{
  19. int dia, mes, ano;
  20. } tipoData;
  21.  
  22.  
  23.  
  24. typedef struct{
  25. int numero;
  26. char nome[20];
  27. char apelido[20];
  28. tipoData dataNascimento;
  29. } tipoCartao;
  30.  
  31.  
  32. typedef struct{
  33.  
  34. int numeroAssociados;
  35. tipoCartao associados[MAX_ELEM];
  36.  
  37. }TipoAssociacao;
  38.  
  39. //vetor associaçao
  40. tipoData dataNascimento[MAX_ELEM];
  41. TipoAssociacao numeros[MAX_ELEM];
  42. tipoCartao associados[MAX_ELEM];
  43. // Declaração de Variaveis!
  44.  
  45.  
  46. FILE*leitura;
  47. FILE*escrita;
  48. int i, j, aux;
  49. int menor;
  50. int escolha;
  51.  
  52.  
  53.  
  54. main (void){
  55.  
  56. leitura = fopen("associados.txt", "r");
  57. escrita = fopen("ordenados.txt", "a");
  58.  
  59. printf("Escolha o metodo de ordenacao que deseja usar:\n1 para ordenacao por selecao e 2 para ordenacao por bolha\n");
  60. scanf("%d", &escolha);
  61. while (fscanf(leitura, "%s %s %d %d %d %d",associados[i].nome, associados[i].apelido, &numeros[i].numeroAssociados,&dataNascimento[i].dia, &dataNascimento[i].mes,&dataNascimento[i].ano)!= EOF){
  62.  
  63. fscanf(leitura, "%s %s %d %d %d %d",associados[i].nome, associados[i].apelido, &numeros[i].numeroAssociados,&dataNascimento[i].dia, &dataNascimento[i].mes,&dataNascimento[i].ano);
  64.  
  65. }
  66.  
  67.  
  68. if(escolha == 1){
  69.  
  70. for (i= 1; i< MAX_ELEM-1; i++)
  71. {
  72. menor = i;
  73. for (j = i+1; j < MAX_ELEM; j++)
  74.  
  75. if(numeros[j].numeroAssociados< numeros[menor].numeroAssociados){
  76.  
  77. menor= j;
  78. aux = numeros[i].numeroAssociados;
  79. numeros[i].numeroAssociados = numeros[menor].numeroAssociados;
  80. numeros[menor].numeroAssociados = aux;
  81.  
  82. }
  83. for (i= 0; i< MAX_ELEM; i++)
  84. fprintf(escrita, "%s %s %d %d %d %d",associados[i].nome, associados[i].apelido, numeros[i].numeroAssociados,dataNascimento[i].dia, dataNascimento[i].mes,dataNascimento[i].ano);
  85.  
  86. printf("O numero de iteracoes necessario para fazer a ordenacao foram: %d", MAX_ELEM - 1);
  87.  
  88. }
  89.  
  90. }
  91.  
  92.  
  93.  
  94.  
  95. // numero de iteraçoes: Tamanho -1 IMPORTANTE
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102. if (escolha == 2){
  103.  
  104.  
  105. //i final menos inicial = numero iteracoes!!!!!!!!!!
  106.  
  107.  
  108. //printf("O numero de iteracoes necessarias para esta ordenacao e de: %d",Log2(MAX_ELEM));
  109. }
  110.  
  111.  
  112.  
  113.  
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement