PDA

View Full Version : سوال: چرا توابع در خروجي نمايش داده نميشند؟



chris66001
چهارشنبه 11 اسفند 1389, 22:26 عصر
چرا توابع (سورت و پرينت) در خروجي نمايش داده نميشند؟
در واقع ميخوام اول سورت بشه نمايش داده بشه بعد انديس عدد پيدا شده نمايش داده بشه بعد تابع پرينت نايش داده بشه


برنامه اصلي :



#include<iostream.h>
#include<conio.h>


//----search----

int binerysearch(int A[],int key)
{
int mid,low=0,high=9;
while(low<=high)
{
mid=(low+high)/2;
if(key<A[mid])
high=mid-1;
else
if(key>A[mid])
low=mid+1;
else
return mid;
}
}





//----print----

void print(void)
{
cout<<"khaste nabashid";
}




//----sort----

int sortb(int A[])
{
int temp;
for(int i=0;i<10;i++)
for(int j=i+1;j<10;j++)
if(A[i]<A[j])
{
temp=A[i];
A[i]=A[j];
A[j]=temp;
}
for (int x=0;x<10;x++)
cout<<A[x]<<"\t";
return 0;
}




//----main----

main()
{
int A[10];
int b;
cout<<"input 10 numbers: \n";
for(int i=0;i<10;i++)
cin>>A[i];
cout<<"input search key: \n";
cin>>b;
int sortb(int A);
int element=binerysearch(A,b);
if(element!=(-1))
cout<<"found vale : "<<element;
else
cout<<"not found";
cout<<endl;
void print();
getch();
}



كامپايلر turbo c++ / borland

خروجي (تو عكس ضميمه) :

هم دانشگاهی
چهارشنبه 11 اسفند 1389, 23:29 عصر
سلام دوست عزیز !

ببین تابع main رو این طوری تغییر بده :


//----main----

main()
{
int A[10];
int b;
cout<<"input 10 numbers: \n";
for(int i=0;i<10;i++)
cin>>A[i];
cout<<"input search key: \n";
cin>>b;
sortb(A);
int element=binerysearch(A,b);
if(element!=(-1))
cout<<"found vale : "<<element;
else
cout<<"not found";
cout<<endl;
print();
getch();
}

شما اومدی تو تابع main تابع ها رو اعلان کردی ولی اون جاباید اون ها رو فرا خونی کنی که در هنگام فراخونی نیازی به اعلان نیست !!!!

موفق باشی

chris66001
پنج شنبه 12 اسفند 1389, 00:17 صبح
دمت گرم خيلي آقايي اون مشكل حل شد.
الان يه مشكل ديگه تو تابع سرچ اگه عددي رو خارج اون اعداد در مجموعه وارد كني ميگه پيدا شد و انديش رو نشون ميده 10 در صورتي كه بايد پيغام پيدا نشدن رو بده چرا؟

هم دانشگاهی
پنج شنبه 12 اسفند 1389, 06:50 صبح
خب تو تابعsortb گفتی > بعد میومد به صورت نزولی مرتب میکرد

که اگر تو sortb این طوری بنویسی :
if(A[i]>A[j])
درست میشه !!!

موفق باشی