Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Massacre7

[Resolvido] Código com erros. Alguém pode me dar uma dica?

Recommended Posts

Pessoal para um trabalho escolar tenho o seguinte código abaixo, porém quando o executo ele esta com alguns erro.... podem me ajudar a identificar os erros???

 

Segue o código.....

 

#include <iostream.h>
#include <stdlib.h>

void troca (int*a,int*B)
{
   int aux;
   aux=a;
   b=a;
}
int pivo(int vec[],int esq,int dir)
{
   int i,j;
   i=esq;
   for(j=esq+1;j<=dir,j++)
   {
      if(vec[j]<vec[esq]
      {
         i++;
         troca(&vec[i],&vec[j]);
      }
   }
   troca(&vec[esq],&vec[i]);
   return i;
}
 void quicksort(int vec[],int esq,int dir)
 {
   int r;
   if (dir>esq)
         {
            r=pivo(vec,esq,dir);
            quicksort(vec,esq,r-1);
            quicksort(vec,r+1,dir);
         }
      int main()
   {
         int vetor[1000];
         int i,
         for(i=0,i<1000,i++)
      {  
         vetor[i]=rand();
      }
         for(i=0;i<1000;i++)
         {
            printf("%d",vetor[i])
         }
               quicksort(vetor,0,999);
               for(i=0,i<1000,i++)
            {
               printf("%d",vetor[i];
            }
   }
}

 

Aguardo ajuda......

Compartilhar este post


Link para o post
Compartilhar em outros sites

rafael, muito obrigado pela dica.... porém memso alterando a função o Dev C mostra os seguintes erros.....

 

In function `int pivo(int*, int, int)':

linha 15 expected`;'before ')'token

linha 18 expected`)'before '{'token

linha 22 expected primary-expression before'}'token

linha 22 expected`;'before '}'token

In function `void quicksort(int*,int,int)':

linha 35 expected primary-expression before ''int''

linha 35 expected `;'before''int''

 

 

 

Pode me ajudar???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Massacre7

 

Eu tenho certeza que, se você ler as mensagens que você mesmo postou, conseguirá encontrar e resolver o(s) problema(s)!

Você sabe alguma coisa de inglês??

Espero que sim, então vamos lá "decifrar" o que o compilador quer dizer...

 

In function `int pivo(int*, int, int)':

linha 15 expected`;'before ')'token

 

No seu código há uma função chamada pivo, e o erro está lá dentro, mais precisamente na linha 15, e o erro é:o compilador encontrou um parentesis, mas ele precisa de um ponto-e-vírgula para continuar.

 

=D

Você faz as outras!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Victor, muito obrigado pelas dicas, espero sempre poder contar com vocês para aprender sempre mais. Realmente como você me mostrou existia alguns erros na função "pivo", corrigi os erros e agora existe um erro na `void quicksort(int*, int, int)':

 

E alem disso o compilador mostra um Warning:

warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.

 

O Compilador agora mostra só estes erros:

 

In function `void quicksort(int*, int, int)':

35: error: expected primary-expression before "int"

35: error: expected `;' before "int"

 

Segue o novo código:

 

#include <iostream.h>
#include <stdlib.h>

void troca (int*a,int*B)
{
   int aux;
   aux=*a;
   *a=*b;
   *b=aux;
}
int pivo(int vec[],int esq,int dir)
{
   int i,j;
   i=esq;
   for(j=esq+1;j<=dir;j++)
   {
      if(vec[j]<vec[esq])
      {
         i++;
         troca(&vec[i],&vec[j]);
      }
   }
   troca(&vec[esq],&vec[i]);
   return i;
}
 void quicksort(int vec[],int esq,int dir)
 {
   int r;
   if (dir>esq)
         {
            r=pivo(vec,esq,dir);
            quicksort(vec,esq,r-1);
            quicksort(vec,r+1,dir);
         }
      int main()
   {
         int vetor[1000];
         int i,
         for(i=0,i<1000,i++)
      {  
         vetor[i]=rand();
      }
         for(i=0;i<1000;i++)
         {
            printf("%d",vetor[i])
         }
               quicksort(vetor,0,999);
               for(i=0,i<1000,i++)
            {
               printf("%d",vetor[i];
            }
   }
}

 

Se não for pedir muito pode me ajudar com mais algumas dicas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre o primeiro erro, tu deve incluir iostream e não iostream.h

 

Sobre o segundo, se tu for olhar denovo tu não fechou a função quicksort;

e o segundo int declarado em main tá com uma vírgula no final ao invés de ponto-e-vírgula.

Compartilhar este post


Link para o post
Compartilhar em outros sites

José muito obrigado pela ajuda... realmente vcs são 10...

 

Deve ter sido uma pegadinha do Professor por que ao executar o código ele mostra uma tela com varios numeros e depois se fecha sozinha, devia ter sido apenas para descobrir os erros mesmos..... Mas vcs contribuiram muito...

 

Mais uma vez obrigado pela ajuda.

 

 

Att

 

Massacre7

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não....

Se o professor escreveu esse código e mostrou para vocês, é bom você estudar o algoritmo que esta nele!

E, mesmo depois de eu ter te ensinado a "ler" as mensagens do compilador, você não conseguiu encontrar os outros erros?

Cara, esses são todos erros de sintaxe, isto é, erros com a escrita do código e não de lógica.

O compilador nos mostra todos os erros sintáticos do código, e é bom você estudar e aprender a usar o compilador.

 

Só um esclarecimento, o seu programa não mostra um monte de números e fecha, ele mostra um monte de números, ordena todos esses números, mostra de novo e então fecha.

Abra-o diretamente pela linha de comandos para ver o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.