PDA

View Full Version : تابع بازگشتی



dada_vahid
سه شنبه 10 خرداد 1390, 00:26 صبح
با سلام من می خوام به وسیله یک تابع فرعی یک ارایه رو جستجو کنم نمیدونم کارم درسته یا نه چون نمیدونم که یک ارایه رو چطور میشه به یک تابع ارسال کرد ممنونم






#include<iostream.h>
#include<conio.h>
int arr(int a[],int search,int n)
{
int i;
for(i=0;i<n;i++)

if(a[i]==search)

return a[i];

}
int main()
{
int n=10,i,s;
int a[10];
for(i=0;i<n;i++)
{
cin>>a[i];
}
cin>>s;

arr(a[],s,n);


}

quiet_programmer
سه شنبه 10 خرداد 1390, 11:42 صبح
با سلام.

برای ارسال آرایه به تابع کد خودت فقط یه ایراد کوچیک داره که اگه حلش کنی برنامه به درستی به تابع ارسال میشه.

این خط:
arr(a[],s,n);


با کد زیر عوض کن

arr(a,s,n);

با استفاده از کد زیر هم میتونی این کارو انجام بدی:
#include<iostream.h>
#include<conio.h>
int arr(int* a,int search,int n)
{
int i;
for(i=0;i<n;i++)
if(a[i]==search)
return a[i];
}
int main()
{
int n=10,i,s;
int a[10];
for(i=0;i<n;i++)
{
cin>>a[i];
}
cin>>s;
arr(a,s,n);
}


هیچ فرقی نمیکنه هردو یکی هستن با سینتکس های متفاوت

موفق باشی

dada_vahid
سه شنبه 10 خرداد 1390, 22:57 عصر
تشکر ولی فکر کنم که مشکل من رو درست متوجه نشدید من یک تابع اصلی دارم یک تابع فرعی حالا میخوام به وسیله یک تابع فرعی عددی رو داخل ارایه جستجو کنم من کد قبلی رو دستکاری کردم نمیدنم چرا صفر رو بر می گردونه




#include<iostream.h>
#include<conio.h>
int arr(int a[],int serach,int n)
{
int i,j;
for(i=0;i<n;i++)

if(a[i]==serach)
a[i]= j;
return j;

}
int main()
{
cout<<endl;
cout<<endl;
int n=10,i,s;
int a[10];
for(i=0;i<n;i++)
{
cout<<" Enter Number "<<i<<":";
cin>>a[i];
}
cout<<endl;
cout<<"Integer Serach :";
cin>>s;

cout<<arr(a,s,n);
getch();


}

dada_vahid
پنج شنبه 12 خرداد 1390, 00:09 صبح
تشکر دوست عزیز
من یک چیز رو متوجه نشدم وقی یک تابع فرعی یک مقدار رو برگشت میده با کدام متغیر اون رو برگشت میده مثلا من 3 تا مقدار فرستادم با کدامش مقدار جستجو رو برمی گردونه اولی دومی یا سومی
باز هم ممنون

quiet_programmer
پنج شنبه 12 خرداد 1390, 18:00 عصر
با سلام.

متغییری که مقابل return قرار میگیره به تابع فراخواننده ارسال میشه. الان شما توی کد بالا گفتی که j رو بازگشت بده و j هم مقدار دهی اولیه نشده پس بطبع مقدار صفر برگشت داده میشه در صورتی که باید بگی i رو برگشت بده تا ایندکس عدد مورد نظر تو آرایه رو برگردونه.

dada_vahid
پنج شنبه 12 خرداد 1390, 19:31 عصر
اره متوجه اشتباهم شدم تشکر