Miqueloti
Número de Mensagens : 27 Idade : 35 Data de inscrição : 01/03/2008
| Assunto: Programa para ordenar um vetor em C Sex 30 maio 2008, 1:01 pm | |
| Estou aqui desocupado em meu trabalho, então resolvi tentar fazer um programa de pesquisa binária, o primeiro passo é coletar os dados e ordenar o vetor, o que foi o um problema, pois não sabia como, e depois de bater a cabeça um pouco descobri a solução, então resolvi compartilhar para que outros que assim como eu não entenderam como organizar um vetor, possam compreender como funciona esta troca. Espero que esteja bem esclarecido, tentei facilitar bem a explicação com os comentários, caso fique alguma duvida perguntem que eu tento explicar melhor, e quando o código do programa de pesquisa binária estiver pronto eu postarei aqui também pra vocês! - Código:
-
/*Programa em para preencher um vetor de 5 posições, e ordenar em ordem crescente todos os elementos*/ #include <stdio.h> #include <conio.h> int vetnum[5],i,j,aux;/*vetor, contadores, variavel auxiliar p/ troca de elementos no vetor*/ int main () { for(i=0;i<5;i++)//coleta de dados { printf("Digite o valor %d: ",i+1); scanf("%d",&vetnum[i]); } for(i=0;i<5;i++)/*Executa o for abaixo por 5 vezes para que ordene todo o vetor*/ for(j=0;j<4;j++)/*Troca a posição x pela posição x+1 até o x ser o penultimo elemento do vetor para trocar com o ultimo*/ { if(vetnum[j]>vetnum[j+1])/*se a posição atual for maior que a posição posterior*/ { aux=vetnum[j+1];//auxiliar recebe posição posterior vetnum[j+1]=vetnum[j];//P.Posterior recebe P.Atual vetnum[j]=aux;//P.Atual } } for(i=0;i<5;i++)//imprime os elementos ordenados para o usuário printf("O Valor %d: %d\n",i+1,vetnum[i]); getch(); }
| |
|
Zed [ADM-Daniel] [Administrador]
Número de Mensagens : 87 Idade : 35 Data de inscrição : 17/02/2008
| Assunto: Re: Programa para ordenar um vetor em C Seg 02 Jun 2008, 11:37 pm | |
| Uia, Miqueloti está treinando bem na programação ;P Boa, tbm preciso praticar mais em vez de só ser na sala de aula =x Mas engraçado, fui lendo aqui sua forma de colocar, é um pouco diferente da minha, mas olhei tudo aqui, e acho que daria no mesmo. - Código:
-
#include <stdio.h> #include <conio.h> int vetnum[5],i,j,aux; int main () { for(i=0;i<5;i++) { printf("Digite o valor %d: ",i+1); scanf("%d",&/*numero(Caso use o compilador da UNIG apague vetnum[i] e deixe numero)*/vetnum[i]); /*vetnum[i]=numero(Caso use o compilador da UNIG essa parte deixa de ser comentário*/ } for(i=0;i<4;i++) { for(j=i+1;j<5;j++) { if(vetnum[i]>vetnum[j]) { aux=vetnum[i]; vetnum[i]=vetnum[j]; vetnum[j]=aux; } } printf("O Valor %d: %d\n",i+1,vetnum[i]); } getch(); }
| |
|