czwartek, 27 stycznia 2022

Special sum function (C++ Builder)

 





__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 srand(time(NULL));
}
//---------------------------------------------------------------------------
int* __fastcall TForm1::rand_Tab2(int *tab, int size_Tab, int find_Sum)
{
int i,sum;
int *result_Tab=new int [size_Tab];
for(i=0;i<size_Tab;i++)
result_Tab[i]=tab[i];
sum=0;
do
{
i=0;
do

{
result_Tab[i]=rand()%20;
         sum+=result_Tab[i];
         ++i;
}while (i<size_Tab);
if(sum!=find_Sum)
sum=0;

}while(sum!=find_Sum);

return result_Tab;

}
void __fastcall TForm1::Sort(int *tab, int s)
{
int i,j,k;
for(i=1;i<s;i++)
{
j=i;
k=tab[j];
while((j>0) && (tab[j-1]>k))
{
tab[j]=tab[j-1];
j--;
}
tab[j]=k;
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 int i,j,k,SUM;
 k=20;
 SUM=StrToInt(Edit1->Text);
 int **TAB=new int*[k];
 for(i=0;i<k;i++)
  TAB[i]=new int[k];
 for(i=0;i<k;i++)
 {
  TAB[i]=rand_Tab2(TAB[i],k,SUM);
 }
 for(i=0;i<k;i++)
  Sort(TAB[i],k);
 for(i=0;i<k;i++)
 {
  for(j=0;j<k;j++)
  {
   StringGrid1->Cells[j][i]=IntToStr(TAB[i][j]);
  }
 }
 for(i=0;i<k;i++)
  delete [] TAB[i];
 delete [] TAB;

}

Brak komentarzy:

Prześlij komentarz