当前位置:编程学习 > C/C++ >>

运用C++二分查找编译此题

在下表中查找 学号为“98182”的学生信息

 

学 号  

姓 名

性别

籍 贯

出生年月

1

98131

刘激扬

北 京

1979.12 

2

98164

衣春生

青 岛

1979.07

3

98165

卢声凯

天 津

1981.02

4

98182

袁秋慧

 广 州 

1980.10

5

98203

林德康

上 海

1980.05

答案:#include<iostream>
using namespace std;
class student
{
public:
 int num;
 char name[10];
 char 易做图[4];
 char addr[7];
 char date[8];
 friend int search(student s[],int n)
 {
  int x=98182;
  int front=0,end=n,mid=(front+end)/2;
  while(front<end&&s[mid].num!=x)
  {
   if(s[mid].num<x)
    front=mid+1;
   if(s[mid].num>x)
    end=mid-1;
   mid=front+(end-front)/2;
  }
  if(s[mid].num!=x)
   cout<<"没有找到";
  else

{
   cout<<"找到了在"<<mid+1<<"位置"<<endl;
   cout<<s[mid].num<<" "<<s[mid].name<<" "<<s[mid].易做图<<" "<<s[mid].addr<<" "<<s[mid].date;
 }

 return 0;
 }
};
int main()
{
 student s[5]={98131,"刘激扬","男","北京","1979.12",
        98164,"衣春生","男","青岛","1979.07",
        98165,"卢声凯","男","天津","1981.02",
        98182,"袁秋慧","女","广州","1980.10",
        98203,"林德康","男","上海","1980.05",};
 search(s,5);
 system("pause");
}

上一个:c++程序设计英文打字练习程序
下一个:C++ 如何判断路径是文件还是目录

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,