Primeiro obrigado já pela ajuda, segundo estou aprendendo C agora.
Estou fazendo um Trabalho em c, em que preciso ordenar o vetor de struct, fiz a função bubblesort, o programa compila certinho mas quando apresento o vetor ordenado ele embaralha tudo.
Segue o código abaixo obs. não liguem pra meus comentários, e pra min não se perder rsr
perguntas
1 - Como faço para na hora do BubbleSort está fazendo a troca ele perceba que o próximo índice do vetor esta vazio e pare?
2 - Também na hora de mostrar os dados do vetor ele perceba que o próximo índice está vazio?
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>//Estrutura ClientesstructClientes{char nome[255];int cpf;char telefone[50];};//Função ordena vetor CPFvoidBubbleSort(int n,structClientes*clientes){int i,j;for(i=n-1; i>=1;i--){for(j=0;j<i;j++){if(clientes[j].cpf>clientes[j+1].cpf){/*TROCA*/char temp;
temp =*clientes[j].nome;*clientes[j].nome =*clientes[j+1].nome;*clientes[j+1].nome = temp;int temp1;
temp1 = clientes[j].cpf;
clientes[j].cpf = clientes[j+1].cpf;
clientes[j+1].cpf = temp1;char temp2;
temp2 =*clientes[j].telefone;*clientes[j].telefone =*clientes[j+1].telefone;*clientes[j+1].telefone = temp2;}}}}//Função busca binaria//Função CadastravoidCadastrarCliente(structClientes*clientes){int count =0;intOp=1;while(Op>0){
printf("\n Digite o nome do cliente \n");
printf("\n NOME: ");
scanf ("%s", clientes[ count ].nome );
printf("\n Digite o CPF do cliente \n");
printf("\n CPF: ");
scanf ("%d",&clientes[ count ].cpf );
printf("\n Digite o Telefone do cliente \n");
printf("\n TELEFONE: ");
scanf ("%s",&clientes[ count ].telefone );
printf("\n Deseja Cadastrar mais um Cliente? \n");
printf("\n 1 - SIM || 0 - NAO \n");
printf("\n Escolha: ");
scanf("%d",&Op);
count++;}}//---------------
main(){//Vetor de CleintesstructClientes clientes[50];//-------------------------//Menu/*Variavel de Escolha*/intOp=1;while(Op>0){
printf("\n .:: ----- Sistemas de Clientes ----- ::.\n");
printf("\n ::::::::::::: MENU ::::::::::::: \n");
printf("\n 1 - Cadastrar Clientes | 2 - Mostra Cadastros \n");
printf("\n Escolha: ");
scanf("%d",&Op);//Cadastro Clienteif(Op==1){CadastrarCliente(clientes);}//Fim Cadastro Clienteif(Op==2){BubbleSort(50, clientes);int i=0;for(i;i<=4;i++){
printf("Nome: %s\n", clientes [ i ].nome );// Mesma coisa quando for exibir ou guarda usar sempre ||Vetor[posiçao].dado||
printf("CPF: %d\n", clientes [ i ].cpf );// Mesma coisa quando for exibir ou guarda usar sempre ||Vetor[posiçao].dado||}}//Retorno para o menu ou sair do programa
printf("\n Deseja Retornar ao Menu? | SIM - 1 Nao - 0 | Escolha: ");
scanf("%d",&Op);
system("cls");}//Fim do Menu}
Pergunta
HugoGuedes
Primeiro obrigado já pela ajuda, segundo estou aprendendo C agora.
Estou fazendo um Trabalho em c, em que preciso ordenar o vetor de struct, fiz a função bubblesort, o programa compila certinho mas quando apresento o vetor ordenado ele embaralha tudo.
Segue o código abaixo obs. não liguem pra meus comentários, e pra min não se perder rsr
perguntas
1 - Como faço para na hora do BubbleSort está fazendo a troca ele perceba que o próximo índice do vetor esta vazio e pare?
2 - Também na hora de mostrar os dados do vetor ele perceba que o próximo índice está vazio?
obrigado já pela ajuda
Link para o comentário
Compartilhar em outros sites
0 respostass 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.