PDA

View Full Version : مشکل در ساخت دفتر چه تلفن ساده



moosavimaleki
سه شنبه 22 آذر 1390, 23:21 عصر
سلام
من میخوام یه دفترچه تلفن ساده بسازم که مخاطب و شماره رو وارد کنم و بعد اونارو توی یه تابع مرتب کنم
مخاطب ها توی رشته های دوبعدی مثل list[3][31]
و شماره ها در یک آرایه no[3] قرار دارند
ولی واسه فرستادن به تابع باید چه جوور بفرستم و تابع رو چه جور تعریف کنم

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
void sort (int list[3][31],int no[3]);

int main()
{
int i;
char list[3][31];
int no[3];
//----------------daryaft mikonad
for(i=0;i<3;i++)
{
cout<<"Name Mokhatabe Shomareye "<<i<<" Ra Vared Konid"<<"\n";
cin>>list[i];
// if(strcmp(list[i],list[i-1])>0 && i>1)
// cin.get(list[i],30);
cout<<"Shomare Mokhatabe Shomareye "<<i<<" Ra Vared Konid"<<"\n";
cin>>no[i];

}
sort(list[],no);
//-------------------------------
for(i=0;i<3;i++)
{
cout<<list[i]<<" ==> "<<no[i]<<"\n";
}
getch();
return 0;
}

void sort (int list[3][31],int no[3])
{
// int strcmp(char *str1, char *str2);
//char *strcpy(char *dest, char *src);
}


در تابع sort با استفاده از strcmp و strcpy مرتب سازی می کنم

developing
چهارشنبه 23 آذر 1390, 11:17 صبح
با سلام

در ارسال آرايه به تابع نيازي به استفاده از كروشه(براكت) نيست و اسم آرايه به تنهايي كافي است.

moosavimaleki
چهارشنبه 23 آذر 1390, 22:26 عصر
int find(char list[3][31],int no[3],char name[31])
{
int down=0,up=2,k=-1,mid;
do
{
mid=(up+down)/2;
if(strcmp(name,list[mid])==0])
return mid;
else if(strcmp(name,list[mid])>0)
down=mid;
else
up=mid;
}while(down!=up);
return -1;
}


تو جستجو ! strcmp هام رو مشکل میگیره
مگه درست ننوشتم !
list[mid] چون list دوبعدی بود باید عدد یک بعدش رو بهش بگم دیگه