PDA

View Full Version : سوال: خروجی سوال زیر را چیست ؟



mohsen.fk
دوشنبه 22 آبان 1391, 22:57 عصر
int a[10];
void F(int*a,int n ){
static inti=0,intk=0;
if(i<n)}
a[i]=k++;
cout<<a[i++];
F(a,n);}}

مسعود اقدسی فام
دوشنبه 22 آبان 1391, 23:24 عصر
اول اینکه این سوال نیست و یه قطعه کد هستش.

عملکرد تابع مد نظره احتمالا. که کلا خروجی تابع به ازای ورودی چیه.

به ازای یه n دلخواه که باید کوچیکتر یا مساوی ده باشه اعداد صفر تا n - 1 رو در محل‌های صفر تا n - 1 آرایه قرار می‌ده و البته چاپ می‌کنه.

hoseinnn
دوشنبه 22 آبان 1391, 23:27 عصر
این کد خطا داره.
اگه به این شکل تابع F رو فراخوانی کنی F(a,10);
خروجی کد زیر میشه 0123456789

void F(int *a,int n)
{
static int i=0,k=0;
if(i<n)
{
a[i]=k++;
cout<<a[i++];
F(a,n);
}
}

omidshaman
سه شنبه 23 آبان 1391, 00:13 صبح
سعی کن تو این جور برنامه ها از حلقه ها ی for یا while به جای تابع بازگشتی استفاده کنی چون استفاده از تابع بازگشتی حافظه زیادی رو مصرف می کنه هر بار که این تابع فراخوانی میشه یک کپی از متغیر ها + فانکشن بیخودی ایجاد میشه....