Ordenação por bubble sort [RESOLVIDO]

1. Ordenação por bubble sort [RESOLVIDO]

lucas
ljparaujo

(usa Debian)

Enviado em 26/01/2018 - 02:06h

Boa noite.
Caros gostaria de saber por que este codigo que criei não esta fazendo a ordenação, pois ao meu ver esta tudo certo.

#include <iostream>
#include <string.h>

#define MAX 10

using namespace std;

class Carro
{
public:
char modelo[100];
char cor[20];
char placa[20];
double preco;
};
//ordenacao por bubble sort
void ordenar(Carro carros[], int tam)
{
int i, j;
Carro aux;

for(i = tam; i >= 0; i--) {

for(j = 1; j <= i; j++) {

if(strcmp(carros[j - 1].modelo, carros[j].modelo) == 1) {

aux = carros[j-1];
carros[j-1] = carros[j];
carros[j] = aux;
}
}
}

}


int main()
{
int i = 0;
Carro carros[MAX];

while(true) {
char opcao;

cout << "Modelo do carro: ";
cin >> carros[i].modelo;

cout << "Preço: ";
cin >> carros[i].preco;

cout << "\nDeseja continuar ? <S>Sim / <N> Não ";
cin >> opcao;

if(opcao != 's')
break;

cout << "\n" ;

i++;
}

cout << "\n";

for(int j = 0; j <= i; j++) {

cout << "\nModelo do carro: " << carros[j].modelo;
cout << "\nPreço: " << carros[j].preco;
cout << "\n";
}

ordenar(carros, i);

cout << "\n\nOrdem alfabética dos modelos";

for(int j = 0; j <= i; j++) {

cout << "\nModelo do carro: " << carros[j].modelo;
cout << "\nPreço: " << carros[j].preco;
cout << "\n";
}

return 0;
}


Desde ja agradeço a atençao


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 26/01/2018 - 16:26h

Por que você está testando “strcmp(carros[j-1].modelo, carros[j].modelo)==1”?

Geralmente não se sabe o valor exato de strcmp(). O que o padrão determina é que se o primeiro argumento for menor que o segundo, o valor de retorno será negativo, se ambos forem iguais, o valor será zero, e, caso contrário, o valor será positivo.

Assim sendo, você provavelmente quis dizer “strcmp(carros[j-1].modelo, carros[j].modelo)>0”.

3. Re: Ordenação por bubble sort [RESOLVIDO]

lucas
ljparaujo

(usa Debian)

Enviado em 26/01/2018 - 18:43h

Obrigado esse realmente era o problema.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts