C++下用冒泡排序法排列10个数

来源:百度知道 编辑:UC知道 时间:2024/06/02 05:16:37
请指出错误的原因:(提示说错误的句子是 for(j=9,q=1;q<=n-k;j--,q++)

#include<iostream>
using namespace std;
class Sort
{
int num[10],x;
public:
void accept()
{
int i;
for(i=0;i<10;i++)
{
cout<<"请输入一个职工的工资:"<<endl;
cin>>num[i];
}
}
void display()
{
int i;
for(i=0;i<10;i++)
{
cout<<num[i]<<endl;
}
}

void sortnum()
{
int k,j,q;
for(k=1;k<10;k++)
{
for(j=9,q=1;q<=n-k;j--,q++)

{ if(num[j]>num[j-1])
{
x=num[j];
num[j]=num[j-1];
num[j-1]=x;
}
}
}

for(j=9,q=1;q<=n-k;j--,q++)
这句中的n是哪里定义的呢,请检查一下是不是这个的问题

补充:改成如下就可以啦
#include<iostream>
using namespace std;

class Sort
{
int num[10],x;
public:
void accept()
{
int i;
for(i=0;i<10;i++)
{
cout<<"请输入一个职工的工资:"<<endl;
cin>>num[i];
}
}
void display()
{
int i;
for(i=0;i<10;i++)
{
cout<<num[i]<<endl;
}
}

void sortnum()
{
int k,j;
for(k=1;k<10;k++)
{
for(j=9;j>0;j--)

{
if(num[j]>num[j-1])
{
x=num[j];
num[j]=num[j-1];
num[j-1]=x;
}
}
}

}
};
int main()
{
Sort aa;
aa.accept();
aa.display();
aa.sortnum();
system("pause");
return 0;
}

for(j=9,q=1;q<=n-k;j--,