مصطفي2008
یک شنبه 08 دی 1387, 14:09 عصر
سلام . من یک برنامه نو شتم که اسم 10 دانشجو را می گیرد و باید آنها را به روش جبابی مرتب کند و به صورت دو دویی جستجو کند . ولی دو تا مشکل دارم .لطفا راه حلش را به من بگویید.(برای امروز) متشکرم
2 دوتا eror ها اینها هستند
13, 29 ):Ambiguous opeators need parentheses
(14,28 :could not find a match for 'istream' ::getline (char ( * ) [21], int, char)
#include <iostream.h>
#include <conio.h>
#include <string.h>
void bubble(char [][21],int);
int bsearch(char[][21],char[],int);
int main ()
{
const int n=5;
int i;
char name [21],arr [n][21];
for (i=0 ; i<n ; i++){
cout << " enter name " <<i+1;
cin.getline( arr , i,'\n') ;
}
bubble(arr,n);
cout <<"\n enter one number for search" ;
cin.get(name,21);
if (bsearch (arr , name ,n )== -1)
cout<< "\n name "<<""<<" not exist in tabel",name ;
else
cout<< "\n name "<<""<<" exist in tabel",name ;
getch();
return 0 ;
}
//*****************
void bubble(char arr[5][21],int n)
{
int i ,j ;
char temp [21];
for (i = n-1 ; i > 0 ; i--)
for (j=0 ; j<i ; j++)
if(strcmp(arr[j],arr[j+1])>0){
strcpy(temp ,arr[j]);
strcpy(arr[j],arr[j+1]);
strcpy(arr[j+1],temp);
}
}
//..................
int bsearch (char arr[5][21],char name[21],int n)
{
int mid,low=0,high=n-1;
while (low <=high){
mid =(low+high)/2;
if (strcmp(name,arr[mid])<0)
high =mid -1 ;
else if (strcmp(name,arr[mid])>0)
low=mid+1 ;
else return mid ;
}
return -1;
}
2 دوتا eror ها اینها هستند
13, 29 ):Ambiguous opeators need parentheses
(14,28 :could not find a match for 'istream' ::getline (char ( * ) [21], int, char)
#include <iostream.h>
#include <conio.h>
#include <string.h>
void bubble(char [][21],int);
int bsearch(char[][21],char[],int);
int main ()
{
const int n=5;
int i;
char name [21],arr [n][21];
for (i=0 ; i<n ; i++){
cout << " enter name " <<i+1;
cin.getline( arr , i,'\n') ;
}
bubble(arr,n);
cout <<"\n enter one number for search" ;
cin.get(name,21);
if (bsearch (arr , name ,n )== -1)
cout<< "\n name "<<""<<" not exist in tabel",name ;
else
cout<< "\n name "<<""<<" exist in tabel",name ;
getch();
return 0 ;
}
//*****************
void bubble(char arr[5][21],int n)
{
int i ,j ;
char temp [21];
for (i = n-1 ; i > 0 ; i--)
for (j=0 ; j<i ; j++)
if(strcmp(arr[j],arr[j+1])>0){
strcpy(temp ,arr[j]);
strcpy(arr[j],arr[j+1]);
strcpy(arr[j+1],temp);
}
}
//..................
int bsearch (char arr[5][21],char name[21],int n)
{
int mid,low=0,high=n-1;
while (low <=high){
mid =(low+high)/2;
if (strcmp(name,arr[mid])<0)
high =mid -1 ;
else if (strcmp(name,arr[mid])>0)
low=mid+1 ;
else return mid ;
}
return -1;
}