[AJUDA] Método Bolha com Strings - C

4 respostas
G

Boa noite galera, preciso de ajuda com um código em C para minha aula de Estrutura de Dados, eu já me cansei de tentar fazer eu mesmo e peguei o código no wikipédia a fim de resolver meu problema e adapta-lo as minhas necessidade, eu tive q fazer um ajuste ou outro, eu compilei o código e não deu erro, mas na hora de executar é que está o problema, se alguém puder me ajudar agradeço desde já, a seguir vão meus códigos:

main.c
#include <stdio.h>
#include <stdlib.h>

main()
{
  char vetor[10][20] = {
       "Guilherme",
       "Larissa",
       "Felipe",
       "Julio",
       "Francisco",
       "Marcos",
       "Natan",
       "Mileide",
       "Vitor",
       "Bianca"
       };
  int i;
  
  printf("<M%ctodo Bolha: Strings> \n\n",130);
  
  printf("Nomes a serem ordenados: \n");
  for(i=0;i<10;i++)
  {
    printf("\n %s",vetor[i]);
  }
  
  bolha(10, vetor);
  
  printf("\n\nNomes ordenados crescentemente: \n");
  for(i=0;i<10;i++)
  {
    printf("\n %s",vetor[i]);
  }
  
  system("PAUSE");	
  return 0;
}
bolha.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void bolha(int n, char *v[])
{    
  int i;
  int trocou;
  char *aux;

  do
  {
    n--;
    trocou = 0;

    for(i = 0; i < n; i++)
    {
      if(strcasecmp(v[i],v[i + 1])>0)
      {
        strcpy(aux, v[i]);
        strcpy(v[i], v[i + 1]);
        strcpy(v[i + 1], aux);
        trocou = 1;
      }
    }
  }while(trocou==1);
}

P.S.: Eu utilizo o Dev-C++ 4.9.9.2

4 Respostas

A

guijocargo:
Boa noite galera, preciso de ajuda com um código em C para minha aula de Estrutura de Dados, eu já me cansei de tentar fazer eu mesmo e peguei o código no wikipédia a fim de resolver meu problema e adapta-lo as minhas necessidade, eu tive q fazer um ajuste ou outro, eu compilei o código e não deu erro, mas na hora de executar é que está o problema, se alguém puder me ajudar agradeço desde já, a seguir vão meus códigos: […]

Será de grande valia, se você dizer que problema é esse.

G

eita, me esqueci do mais importante, foi mal, é que assim, na hora de executar ele da erro depois de mostrar os 10 nomes sem ordenar, eu acho que o problema está ou no na função bolha ou do for que mostra os nomes ordenados, mas não sei qual é esse problema e como resolve-lo :frowning: :?

C

Não executei seu código, apenas dei uma olhada, mas estou vendo que você está utilizando o ponteiro char *aux sem alocar memória,
com certeza esse é um dos problemas do seu código.

Outra dica, aprenda a fazer perguntas, dê mais detalhes do seu problema, você diz que está dando erro, mas não diz qual é o erro.

G

certo, vou estudar alocação de memória, acho que sei o que vou ter que usar, obrigado pela ajuda vocês dois :smiley:

Criado 16 de outubro de 2011
Ultima resposta 16 de out. de 2011
Respostas 4
Participantes 3