fala galera, beleza ? preciso de uma ajuda neste programa simples, ela da um erro bizarro quando chega na funcao MostraVet
//******************UNIT********************
void __fastcall TForm1::Edit1Exit(TObject *Sender)
{
int n=atoi(Edit1->Text.c_str());
if(n<=0)
{
ShowMessage("Quantidade Invalida!!");
Edit1->SetFocus();
}
else
{
sg1->ColCount=n;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int *pv,*pp,*pi,tp=0,ti=0,n=atoi(Edit1->Text.c_str());
pv=AlocaVet(n);
PreencheVet(pv,n,&tp,&ti,sg1);
if (tp!=0)
{
pp=AlocaVet(tp); }
if(ti!=0)
{pi=AlocaVet(ti);}
SeparaVet(pv,pp,pi,n);
DECRE(pi, n);
CRE(pp, n);
MostraVet(pp,tp,sg2);
MostraVet(pi,ti,sg3);
//*******************BIBLIOTECA*******************
int* AlocaVet(int n)
{
int *p=(int*) malloc(n*sizeof(int));
if(!p)
{
ShowMessage("Problema de Memória-Programa será encerrado!!");
exit(0);
}
return p;
}
void PreencheVet(int *ppv,int n,int *ttp,int *tti,TStringGrid *s)
{
for(int i=0;i<n;i++)
{
ppv=atoi(s->Cells[0].c_str());
if (ppv%2==0)
{
(*ttp)++;
}
else
{
(*tti)++;
}
}
}
void SeparaVet(int *ppv,int *ppp,int *ppi,int n)
{
int kp=0,ki=0;// Kp= indice do vetor par somente,
for(int ko=0;ko<n;ko++) // Ki=indece do vetor impar somente, ko= indice do vetor original, somente.
{
if (ppv[ko]%2==0)
{
ppp[kp++]=ppv[ko]; // ppp[kp++] é a mesma coisa que kp++; na linha de baixo.
}
else
{
ppi[ki++]=ppv[ko];
}
}
}
void CRE(int *a, int n)
{
int i, j, tmp;
for(i=0; i<=n;i++)
{
for(j=i+1; j<=n;j++)
{
if(a[j]<a)
{
tmp=a;
a=a[j];
a[j]=tmp;
}
}
}
}
void DECRE(int *pi, int n)
{
int x, y, aux;
for(x=0;x<=n;x++)
{
for(y=x+1; y<=n; y++)
{
if (pi[y]>pi[x])
{
aux=pi[y];
pi[y]=pi[x];
pi[x]=aux;
}
}
}
}
void MostraVet(int *p,int t,TStringGrid *s)
{
s->ColCount=t; // duvida
s->Rows[0]->Clear();
for(int i=0;i<t;i++)
s->Cells[0]=p;
}
nesse programa preciso fazer o seguinte: Gerar um vetor com números pares e outro com números ímpares a partir de um vetor gerado pelo usuário (valores também fornecidos pelo usuário). Apresentar o vetor PAR ordenado de forma crescente
e o vetor ÍMPAR de forma decrescente. Usar: AlocaVetor( ), PreencheVetor( ), SeparaVetor( ) , OrdenaVetorCrescente(), OrdenaVetorDecrescente() e MostraVetor( )