Omid707
دوشنبه 05 مهر 1389, 21:33 عصر
باسلام
مشکلی دررابطه با این تمرین داشتم لطفا راهنمایی کنید البته تمرین دانشجویی نیست. من بخاطر علاقه ای که به برنامه نویسی داشتم بصورت آزاد دارم یاد میگیرم:تشویق:
تمرین از کتاب دیتل فصل آرایه ها
مرتب سازی بروشBucketSort
تابعی بنویسید که یک آرایه صحیح و سایز آرایه را بعنوان آرگومان دریافت کند و مراحل زیر راانجام دهد........................
خب من تو مراحل مشکل نداشتم وکد لازم رو نوشتم مشکل من اینجاست که مجبورم سایز آرایه رو بصورت دستی وداخل تابع بنویسم در حالی که تابع باید سایز رو بصورت آرگومان از برنامه دریافت کنه اما من هرکاری کردم
تابع آرایه اعداد صحیح رو میخونه ولی سایز رو قبول نمیکنه این هم کدی که نوشتم واجرا نمیشه
البته اگه به متغییر N داخل تابع مقدار بدم اجرا میشه ولی تمرین چیز دیگه ای خواسته:عصبانی++:
اگه کد شلوغه ببخشید بدون استاد و کلاس یاد گرفتن این نتایج رو هم داره
void BucketSort(const int N , int Number[] )
{
const int B=10;
int BucketSort[B][N];
for(int a=0 ; a<B ; a++)
{
for(int b=0 ; b<N ; b++)
{
BucketSort[B][N]=-1;
}
}
enum Ststus{CONTINUE,END};
int Sort=CONTINUE;
int k=1;
int p;
int Result;
int Remainder;
int Item;
int T;
int s;
while( Sort == CONTINUE )
{
s=0;
p=10*k;
T=0;
for(int i=0 ; i<N ; i++)
{
Result=Number[i]/p;
Remainder=Number[i]-(Result*p);
Item=Remainder / (k);
BucketSort[Item][s]=Number[i];
s++;
if( Item > 0)
{
T++;
}
}//end of - for(int i=0 ; i<N ; i++)
int c=0;
for(int i=0 ; i<B ; i++)
{
for(int j=0 ; j<N ; j++)
{
if( BucketSort[i][j] >=0 )
{
Number[c]=BucketSort[i][j];
c++;
}
}
}
for(int a=0 ; a<B ; a++)
{
for(int b=0 ; b<N ; b++)
{
BucketSort[a][b]=-1;
}
}
if( T == 0)
{
Sort=END;
}
k*=10;
}//end of - while( Sort == CONTINUE )
}//end of Function BucketSort
مشکلی دررابطه با این تمرین داشتم لطفا راهنمایی کنید البته تمرین دانشجویی نیست. من بخاطر علاقه ای که به برنامه نویسی داشتم بصورت آزاد دارم یاد میگیرم:تشویق:
تمرین از کتاب دیتل فصل آرایه ها
مرتب سازی بروشBucketSort
تابعی بنویسید که یک آرایه صحیح و سایز آرایه را بعنوان آرگومان دریافت کند و مراحل زیر راانجام دهد........................
خب من تو مراحل مشکل نداشتم وکد لازم رو نوشتم مشکل من اینجاست که مجبورم سایز آرایه رو بصورت دستی وداخل تابع بنویسم در حالی که تابع باید سایز رو بصورت آرگومان از برنامه دریافت کنه اما من هرکاری کردم
تابع آرایه اعداد صحیح رو میخونه ولی سایز رو قبول نمیکنه این هم کدی که نوشتم واجرا نمیشه
البته اگه به متغییر N داخل تابع مقدار بدم اجرا میشه ولی تمرین چیز دیگه ای خواسته:عصبانی++:
اگه کد شلوغه ببخشید بدون استاد و کلاس یاد گرفتن این نتایج رو هم داره
void BucketSort(const int N , int Number[] )
{
const int B=10;
int BucketSort[B][N];
for(int a=0 ; a<B ; a++)
{
for(int b=0 ; b<N ; b++)
{
BucketSort[B][N]=-1;
}
}
enum Ststus{CONTINUE,END};
int Sort=CONTINUE;
int k=1;
int p;
int Result;
int Remainder;
int Item;
int T;
int s;
while( Sort == CONTINUE )
{
s=0;
p=10*k;
T=0;
for(int i=0 ; i<N ; i++)
{
Result=Number[i]/p;
Remainder=Number[i]-(Result*p);
Item=Remainder / (k);
BucketSort[Item][s]=Number[i];
s++;
if( Item > 0)
{
T++;
}
}//end of - for(int i=0 ; i<N ; i++)
int c=0;
for(int i=0 ; i<B ; i++)
{
for(int j=0 ; j<N ; j++)
{
if( BucketSort[i][j] >=0 )
{
Number[c]=BucketSort[i][j];
c++;
}
}
}
for(int a=0 ; a<B ; a++)
{
for(int b=0 ; b<N ; b++)
{
BucketSort[a][b]=-1;
}
}
if( T == 0)
{
Sort=END;
}
k*=10;
}//end of - while( Sort == CONTINUE )
}//end of Function BucketSort