PDA

View Full Version : سوال در مورد نوشتن تابع و فراخوانی به وسیله مرجع در مورد آرایه ها



vahid-p
پنج شنبه 30 آذر 1391, 03:27 صبح
برای نوشتن یک تابع میخوام آرایه ای که به عنوان آرگومان گرفته میشه، کارهایی روش صورت بگیره و روی همون آرایه اعمال بشه. یعنی همون call by refrence
تابعی که میخوام بنویسم مرتب سازی حبابی هست. درست عمل میکنه ولی میخوام آرایه ای که میگیره و نامنظم هست رو به صورت منظم تحویل بده.
چیکار کنم؟
void bubble_sort(int a[],int n)
{
int i,j,t;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[j+1]<a[j])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}

}

vahid-p
پنج شنبه 30 آذر 1391, 15:29 عصر
کسی نبود راهنمایی کنه؟

H_G_G_I
پنج شنبه 30 آذر 1391, 20:13 عصر
خب شما همین الانم همون کاری که می خواستی رو انجام دادی دیگه !:قهقهه:
خودت نتیجه رو ببین !
درواقع

bubble_sort(int a[],int n)

یعنی

bubble_sort(int* a,int n)

mahak006
پنج شنبه 30 آذر 1391, 20:41 عصر
کسی نبود راهنمایی کنه؟
آرایه ها به صورت پیش فرض call by refrence هستن و نیاز به انجام کار اضافه نداره . این یه چیز عادیه . چون اگه قرار باشه غیر این باشه هر آرایه ی بزرگ وقتی به یه تابع داده می شه یکی دیگه از روش کپی می شه که هم سرعت کار برنامه میاد پایین و هم حافظه ی بیشتری می خواد .

aidinMC
پنج شنبه 30 آذر 1391, 20:42 عصر
بله همونطور که دوستمون گفت وقتی شما آرایه ای رو بعنوان آرگومان میفرستی آدرس اولین خونه آرایه به تابه ارسال میشه و به همین دلیل تغییرات تو رو خود آرایه اعمال میشه...

aidinMC
پنج شنبه 30 آذر 1391, 20:43 عصر
آرایه ها به صورت پیش فرض call by refrence هستن و نیاز به انجام کر اضافه نداره . این یه چیز عادیه . چون اگه قرار باشه غیر این باشه هر آرایه ی بزرگ وقتی به یه تابع داده می شه یکی دیگه از روش ک\ی می شه که هم سرعت کار برنامه میاد \ایین و هم حافظه ی بیشتری می خواد .
فک کنم پست همزمان ارسال شد!