ESTOU A FAZER UM METODO DE ORDENAÇAO, POREM ACABEI DE não COMPREEENDER O QUE ACONTECE NO ALGORITMO ABAIXO,
ELE ESTA ORDENANDO CORRETAMENTE, POREM O QUE EU GOSTARIA Q ACONTECECE (QUE É COPIAR O CODIGO - SOMENTE O CODIGO- E ORDENALO CONFORME O CODIGO) SOU INICIANTE E USO O DEV C++. não CONSIGO COMPREENDER O porque, SE alguém DER UMA LUZ AEW FICO MUITO GRATO :D
VALLWWWWW SEGUE CODIGO ABAIXO:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <ctype.h>
#include <windows.h>
#define MAX 1000
//ESTRUTURAS
typedef struct Associados{
int cod;
char nome[30];
char sobre_nome[30];
int CPF;
int Data_de_Associacao;
float Saldo_em_Conta;
};
//ESTRUTURAS GLOBAIS
Associados Associado[MAX];
void cadastra_cliente();
void print_Associado();
void ordena (Associados vet[], int inicio, int fim);
int num_Associados=0;
int main()
{
cadastra_cliente();
print_Associado();
ordena (Associado, 0, num_Associados);
print_Associado();
getch();
}
void cadastra_cliente()
{
Associado[0].cod=4;
strcpy (Associado[0].nome, "AAA");
strcpy (Associado[0].sobre_nome, "AAA");
Associado[0].CPF=123;
Associado[0].Data_de_Associacao=123;
Associado[0].Saldo_em_Conta=50;
num_Associados++;
Associado[1].cod=3;
strcpy (Associado[1].nome, "BBBB");
strcpy (Associado[1].sobre_nome, "BBBB");
Associado[1].CPF=456;
Associado[1].Data_de_Associacao=456;
Associado[1].Saldo_em_Conta=100;
num_Associados++;
Associado[2].cod=2;
strcpy (Associado[2].nome, "CCCC");
strcpy (Associado[2].sobre_nome, "CCCC");
Associado[2].CPF=789;
Associado[2].Data_de_Associacao=789;
Associado[2].Saldo_em_Conta=150;
num_Associados++;
Associado[3].cod=1;
strcpy (Associado[3].nome, "DDD");
strcpy (Associado[3].sobre_nome, "DDD");
Associado[3].CPF=91;
Associado[3].Data_de_Associacao=91;
Associado[3].Saldo_em_Conta=200;
num_Associados++;
Associado[4].cod=7;
strcpy (Associado[4].nome, "EEE");
strcpy (Associado[4].sobre_nome, "EEEE");
Associado[4].CPF=91;
Associado[4].Data_de_Associacao=91;
Associado[4].Saldo_em_Conta=200;
num_Associados++;
}
void ordena (Associados vet[], int inicio, int fim)
Pergunta
Sartor
ESTOU A FAZER UM METODO DE ORDENAÇAO, POREM ACABEI DE não COMPREEENDER O QUE ACONTECE NO ALGORITMO ABAIXO,
ELE ESTA ORDENANDO CORRETAMENTE, POREM O QUE EU GOSTARIA Q ACONTECECE (QUE É COPIAR O CODIGO - SOMENTE O CODIGO- E ORDENALO CONFORME O CODIGO) SOU INICIANTE E USO O DEV C++. não CONSIGO COMPREENDER O porque, SE alguém DER UMA LUZ AEW FICO MUITO GRATO :D
VALLWWWWW SEGUE CODIGO ABAIXO:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <ctype.h>
#include <windows.h>
#define MAX 1000
//ESTRUTURAS
typedef struct Associados{
int cod;
char nome[30];
char sobre_nome[30];
int CPF;
int Data_de_Associacao;
float Saldo_em_Conta;
};
//ESTRUTURAS GLOBAIS
Associados Associado[MAX];
void cadastra_cliente();
void print_Associado();
void ordena (Associados vet[], int inicio, int fim);
int num_Associados=0;
int main()
{
cadastra_cliente();
print_Associado();
ordena (Associado, 0, num_Associados);
print_Associado();
getch();
}
void cadastra_cliente()
{
Associado[0].cod=4;
strcpy (Associado[0].nome, "AAA");
strcpy (Associado[0].sobre_nome, "AAA");
Associado[0].CPF=123;
Associado[0].Data_de_Associacao=123;
Associado[0].Saldo_em_Conta=50;
num_Associados++;
Associado[1].cod=3;
strcpy (Associado[1].nome, "BBBB");
strcpy (Associado[1].sobre_nome, "BBBB");
Associado[1].CPF=456;
Associado[1].Data_de_Associacao=456;
Associado[1].Saldo_em_Conta=100;
num_Associados++;
Associado[2].cod=2;
strcpy (Associado[2].nome, "CCCC");
strcpy (Associado[2].sobre_nome, "CCCC");
Associado[2].CPF=789;
Associado[2].Data_de_Associacao=789;
Associado[2].Saldo_em_Conta=150;
num_Associados++;
Associado[3].cod=1;
strcpy (Associado[3].nome, "DDD");
strcpy (Associado[3].sobre_nome, "DDD");
Associado[3].CPF=91;
Associado[3].Data_de_Associacao=91;
Associado[3].Saldo_em_Conta=200;
num_Associados++;
Associado[4].cod=7;
strcpy (Associado[4].nome, "EEE");
strcpy (Associado[4].sobre_nome, "EEEE");
Associado[4].CPF=91;
Associado[4].Data_de_Associacao=91;
Associado[4].Saldo_em_Conta=200;
num_Associados++;
}
void ordena (Associados vet[], int inicio, int fim)
{
printf ("\n ORDENANDO");
int i, j, pivo, aux;
i=inicio; j=fim;
pivo= (int)((inicio+fim)/2);
while (i<j)
{
while(vet.cod < pivo){ i+=1; }
while(vet[j].cod > pivo){ j-=1; }
if (i<=j)
{
aux=vet.cod;
vet.cod=vet[j].cod;
vet[j].cod=aux;
i+=1;
j-=1;
}
}
if (j>inicio){ ordena(vet, inicio, j); }
if (i<fim){ ordena(vet, i, fim); }
}
void print_Associado()
{
int i=0;
while (i<num_Associados)
{
printf("\n\n CODIGO: %d", Associado.cod);
printf("\n NOME: %s", Associado.nome);
printf("\n SOBRENOME: %s", Associado.sobre_nome);
printf("\n CPF: %d", Associado.CPF);
printf("\n DATA: %d", Associado.Data_de_Associacao);
printf("\n SALDO BRUTO: %.2f", Associado.Saldo_em_Conta);
i++;
}
getch();
}//FIM IMPRIME ASSOCIADOS
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.