wFs 0 Denunciar post Postado Maio 10, 2006 #include <stdio.h>#include <conio.h>#define vet 10main(){ int vetor[vet], i, j, recept=0; for (i = 0; i < vet; i++){ vetor[i] = 0; } for (i = 0; i < vet; i++){ printf ("\n Digite um valor: "); scanf ("%d",&vetor[i]); } for (i = 0; i < vet; i++){ for (i = 0; (i + 1)< vet; i++){ if ( i > j){ recept = vetor[i+1]; vetor[i+1] = vetor[i]; vetor[i] = recept; } } } for (i = 0; i < vet; i++){ printf ("\n Selecao Ordenada: %d", vetor[i]); } getch(); return 0; } Alguem pode me dizer o que tem errado ai? Eu quero que ele ordene os números, quando colocado 9, 8, 7, 6, 5, 4, 3, 2, 1. ele mude e coloque 1,2,3,4,5,6,7,8,9. Compartilhar este post Link para o post Compartilhar em outros sites
skimo-solar 0 Denunciar post Postado Maio 10, 2006 Se você olhar bem o seu código, esta comparação if ( i > j) não faz sentido, já que j não tem valor algum. Você parece ter entendido a idéia, mas não conseguiu implementar direito. Estude a função abaixo e repare as diferenças for (i = 0; i < vet-1; i++){ for (j = i+1; j < vet; j++){ if ( vetor[i] > vetor[j]){ recept = vetor[i]; vetor[i] = vetor[j]; vetor[j] = recept;Esta deve ser o suficiente para vetores pequenos. Compartilhar este post Link para o post Compartilhar em outros sites
wFs 0 Denunciar post Postado Maio 11, 2006 Realmente isso eu tinha percebido if ( i > j) eu soh nao sei fazer um Teste De Mesa neste tipo de algoritimo, ou esse tipo de arquivo C. Valeu mesmo cara... se você puder me dar uma dica de como fazer um teste de mesa eu ficaria muito grato... =) Compartilhar este post Link para o post Compartilhar em outros sites
skimo-solar 0 Denunciar post Postado Maio 11, 2006 Mãos a obra.Pegue papel e caneta e vá seguindo as instruções do algoritmo para verificar se está tudo certo.Vai dar um pouco de trabalho já que é um algoritmo de ordenação =P Compartilhar este post Link para o post Compartilhar em outros sites