PDA

View Full Version : سوال: جستجوی یک عدد در یک ارایه با استفاده از تابع بازگشتی



atoorpatkan
دوشنبه 25 اردیبهشت 1391, 13:26 عصر
سلام دوستان.من میخوام یک عدد رو تو یه ارایه جستجو کنم اما با استفاده از تابع بازگشتی. کد پایین رو نوشتم اما خطا میده.کسی میتونه کمکی کنه.مرسی.


#include <iostream.h>
int search (int a[],int b,int n)
{
if (n==-1)
return -1;
else if (b==a[n])
return a[n];
else
return search (a[n-1],b,n-1);
}
int main ()
{
int i,m,z[10],c,q;
m=10;
for (i=0;i<m;i++)
cin>>z[i];
cout<<" what do you want serach: ";
cin>>c;
q= search (z[10],c,m);
cout<<q;
return 0;
}

obaid1372
دوشنبه 25 اردیبهشت 1391, 14:46 عصر
دوست عزیر مشکل کانورت داره این برنامه شما ! شما می تونید از روش ارجاعی استفاده کنید ! و یا تبدیل رو به صورت دستی انجام دهید !

atoorpatkan
دوشنبه 25 اردیبهشت 1391, 16:01 عصر
دوست عزیر مشکل کانورت داره این برنامه شما ! شما می تونید از روش ارجاعی استفاده کنید ! و یا تبدیل رو به صورت دستی انجام دهید !
یعنی چه جوری اونوقت؟؟؟میشه مثال بزنی؟؟؟

vistacali
سه شنبه 26 اردیبهشت 1391, 10:23 صبح
به خط 19 و 9 نگاه کن متغیری توی خط 9 n از نوع اشاره گر اگر باشه باید برنامه درست بشه چون باید ادرس n رو بفرستی برای ارایه ارایه از نوع اشاره گر هست ولی عدد داده ساده است
اگر به این صورت تغییر بدی درست میشه


#include <iostream>
#define m 10
using namespace std;
int search (int a[],int b,int n);
int main ()

{
int array[m],c,q;
for (int i=0;i<m;i++)
cin>>array[i];

cout<<" what do you want serach: ";
cin>>c;

q=search (array,c,m);

cout<<q;
return 0;
}

int search (int a[],int b,int n)
{

if (n==-1)
return -1;

else if (b==a[n])
return a[n];
else
return search(a,b,n-1);
}