Problema em C/C++

3 respostas
Rafael_Marques1

Algm pode me ajudar???
eu ja olhei, reolhei, fiz, refiz, mas nao consigo achar o erro...

void leVetorInt(int prN, int *prV);
void ordenaVetor(int prN, int *prV);
void exibeVetorInt(int prN, int *prV);

main()
{
      
      int *vet, *vetiguais, aux, reall;
      vet = (int *) malloc(sizeof(int) * 20);
      leVetorInt(20, vet);
      ordenaVetor(20, vet);
      exibeVetorInt(20, vet);
      free(vet);
      system("pause");
           
}

void leVetorInt(int prN, int *prV)
{

     
     for (int i = 0; i < prN; i++)
     {
         printf("\nDigite o numero %d do vetor: ", i+1);
         scanf("%d", &prV[i]);
     }
            
}

void ordenaVetor(int prN, int *prV)
{
     int aux;

     for (int i = 1; i < prN; i++){
         for (int j = 0; i < (prN - i); j++){
             if (prV[j] > prV[j+1]){
                aux = prV[j];
                prV[j] = prV[j+1];
                prV[j+1] = aux;
             }
         }
     }
}

void exibeVetorInt(int prN, int *prV)
{
     
     printf("\n\nVetor diferente: \n\n");
     
     for (int i = 0; i < prN; i++)
         printf(" %d ", prV[i]);
     
     printf("\n\n\n");
     
     /*printf("\n\nVetor igual: \n\n");
     
     for (int i = 0; i < prNumIgual; i++)
         printf(" %d ", prVetIgual[i]);
     
     printf("\n");*/
     
}

algm pode me ajudar??

3 Respostas

T

Isso é um bubble sort, mas o que ocorre de errado?

Rafael_Marques1

fecha o programa direto…

se deixo a funcao ordena comentada, o prog roda normal…

eu realmente nao to conseguindo entender ql o problema…

T

Hum… pus seu programa para rodar e ele realmente tinha um problema sério, mas bem difícil de enxergar.
Mostro abaixo a correção que deve ser feita, mas me explique por que é que o que você fez está errado.

// errado
         for (int j = 0; i &lt; (prN - i); j++){
// corrigido
         for (int j = 0; j &lt; (prN - i); j++){
Criado 26 de março de 2009
Ultima resposta 26 de mar. de 2009
Respostas 3
Participantes 2