Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <math.h>
- #define MAX_ELEM 100
- //Declaração de estruturas
- typedef struct{
- int dia, mes, ano;
- } tipoData;
- typedef struct{
- int numero;
- char nome[20];
- char apelido[20];
- tipoData dataNascimento;
- } tipoCartao;
- typedef struct{
- int numeroAssociados;
- tipoCartao associados[MAX_ELEM];
- }TipoAssociacao;
- //vetor associaçao
- tipoData dataNascimento[MAX_ELEM];
- TipoAssociacao numeros[MAX_ELEM];
- tipoCartao associados[MAX_ELEM];
- // Declaração de Variaveis!
- FILE*leitura;
- FILE*escrita;
- FILE*escrita2;
- int i, menor, j, aux;
- int main(){
- leitura = fopen("associados.txt", "r");
- escrita = fopen("ordenados.txt", "w");
- escrita2 = fopen("OrdenadosB.txt","w");
- int escolhaUser, blockSwitch;
- while(blockSwitch==0){
- printf("Escolha o metodo que pretende [1 para selecao e 2 para bolha]:");
- scanf("%d",&escolhaUser);
- switch(escolhaUser)
- {
- case 1 :
- 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){
- for (i= 0; i< MAX_ELEM-1; i++){
- menor = i;
- for (j = i+1; j < MAX_ELEM; j++){
- if(numeros[j].numeroAssociados< numeros[menor].numeroAssociados){
- menor= j;
- }
- }
- }
- aux = numeros[i].numeroAssociados;
- numeros[i].numeroAssociados = numeros[menor].numeroAssociados;
- numeros[menor].numeroAssociados = aux;
- fprintf(escrita, "%s %s %d %d %d %d\n",associados[i].nome, associados[i].apelido, numeros[i].numeroAssociados, dataNascimento[i].dia, dataNascimento[i].mes, dataNascimento[i].ano);
- }
- //Duvida aqui! (De acordo comos slides está correto)
- printf("Ocorreram %d para interacoes para ordenar a estrutura.", MAX_ELEM - 1);
- blockSwitch=1;
- break;
- case 2 :
- 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){
- for(i=0; i<MAX_ELEM; i++){
- for(j=MAX_ELEM-1; j>i; j--){
- if(numeros[i].numeroAssociados<numeros[j-1].numeroAssociados){
- aux=numeros[j].numeroAssociados;
- numeros[j].numeroAssociados=numeros[j-1].numeroAssociados;
- numeros[j-1].numeroAssociados=aux;
- }
- }
- }
- fprintf(escrita2, "%s %s %d %d %d %d\n",associados[i].nome, associados[i].apelido, numeros[i].numeroAssociados, dataNascimento[i].dia, dataNascimento[i].mes, dataNascimento[i].ano);
- }
- //Duvida aqui! (De acordo comos slides está correto)
- printf("Ocorreram %d para interacoes para ordenar a estrutura.", MAX_ELEM - 1);
- blockSwitch=1;
- break;
- default:
- printf("Numero invalido. Tente novamente.\n");
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement