冒泡排序求解,运行时出错,为什么
#include<iostream>using namespace std;
#define max 10
struct node{
int key;
}sqlist[max];
void doubledouble(struct node r[],int n)
{int i=0,j=n-1,b=1,l;
struct node t;
while(b)
{b=0;
for(l=j;l>i;i--)
if(r[l].key<r[l-1].key)
{
b=1;
t=r[l];
r[l]=r[l-1];
r[l-1]=t;}
i++;
for(l=i;l<j;l++)
if(r[l].key>r[l-1].key)
{b=1;
t=r[l-1];
r[l-1]=r[l];
r[l]=t;}
j--;
}
}
int main()
{int i,n,temp;
struct node r[10];
cout<<"输入元素个数"<<endl;
cin>>n;
for(i=0;i<n;i++)
{cin>>temp;
r[i].key=temp;
}
doubledouble(r,n);
for(i=0;i<n;i++)
cout<<r[i].key<<endl;
}
[ 本帖最后由 nan1888 于 2011-8-31 18:22 编辑 ]