-1
我在毕业设计项目中将一组记录作为案例研究。在我编写的代码中,我创建了一个结构数组,并输入int的数组 中的结构的id,以使排序更容易,但是当它运行时它会卡住。通过编号排序结构数组
#include<iostream.h>
struct book{
char Bname[8], Bsubject[8];
int copyies, Bid, Bfound;
} a[100];
void Ider(book a[],int r[],int index){
for(int i=0;i<index;i++)
r[i]=a[i].Bid;
}
void swap(int &a,int &b){
int c=a;
a=b;
b=c;
}
void Bublesort(int a[],int n){
for(int j=0;j<n;j++)
for(int i=1;i<n-1;i++)
if(a[i]>a[i+1])
swap(a[i+1],a[i]);
}
int bsearch(int b[],int key,int first,int last){
int midel=(first+last)/2;
for(int i=0;i<last;i++){
if(b[midel]==key)
return midel;
else
if(b[midel]>key)
return bsearch(b,key,first,midel-1);
else
if(b[midel]<key)
return bsearch(b,key,midel+1,last);
}
}
int main(){
int r,i, index=0,m[100];
char ch;
do{
cout<<"Enter your"<<index+1<<" Book id"<<" ";
cout<<endl;
cin>>a[index].Bid;
cout<<"Enter your"<<index+1<<" Book name"<<" ";
cout<<endl;
cin>>a[index].Bname;
cout<<"Enter your"<<index+1<<" Book subject"<<" ";
cout<<endl;
cin>>a[index].Bsubject;
index++;
a[index].Bfound++;
a[index].copyies++;
if(index==99)
break;
quite : cout<<"Do you want to continue";
cin>>ch;
} while(ch=='y');
Ider(a,m,index);
Bublesort(m,index);
char p;
do{
cout<<"Do you want to search?"<<endl;
cin>>p;
cout<<"enter your id";
cin>>i;
r=bsearch(m,i,0,index);
cout<<a[r].Bfound<<" ";
} while(ch=='y');
system("pause");
return 0;
}
当它到达bublesort()
它挂起并没有给出任何输出,但为什么?
我没有看到任何'oop'这里,只是一个结构和功能。这应该是面向对象吗? – crashmstr 2012-07-13 17:19:25
thanx在这里寻求帮助 – 2012-07-13 17:22:21
@AbdallaAdam:不是。这段代码会在C语言中进行编译(除了包含 [顺带一提,这个头文件已被弃用,它应该是]),这不是OO语言......暗示代码中没有面向对象。无论你想要还是需要它是一个完全不同的问题,但不应该将该问题标记为OOP –
2012-07-13 17:24:28