Pulse 0 Denunciar post Postado Maio 20, 2015 Sei que existem alguns algoritmos desse tipo prontos por ai mas estou tentando fazer um sozinho, não consigo encontrar no que estou errando. int main () { int v[] = {4, 3, 2, 1, 0, 8, 9, 10}, i, n=8, aux, k; for(i=0; i<n-1; i++) { for(k=i; k>=0; k--) { if(v[k] > v[k+1]); { aux = v[k]; v[k] = v[k+1]; v[k+1] = aux; } } } } Compartilhar este post Link para o post Compartilhar em outros sites
cahe7cb 27 Denunciar post Postado Maio 20, 2015 Na parte do código onde você faz a troca dos elementos: if(v[k] > v[k+1]); { aux = v[k]; v[k] = v[k+1]; v[k+1] = aux; } Repare que há um ponto e vírgula( ; ) no final da primeira linha, na condição de troca. Ele faz com que o compilador interprete seu código da seguinte maneira: if(v[k] > v[k+1]) { // nada para ser feito } // sempre vai ser executado aux = v[k]; v[k] = v[k+1]; v[k+1] = aux; Remova o ponto e vírgula e teste seu código novamente. Compartilhar este post Link para o post Compartilhar em outros sites
Pulse 0 Denunciar post Postado Maio 21, 2015 Puts, não sei como não tinha percebido isso! Mancada! Valeu, cahe7cb! Compartilhar este post Link para o post Compartilhar em outros sites