//用指针变量将10个整数由小到大顺序输出
int main(int argc, char * argv[])
{
void select_sort(int*p,int n);
int a[10],i;
cout<<"请输入10个数:";
for(i=0;i<10;i++)
cin>>a[i];
cout<<endl;
select_sort(a,10);
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
void select_sort(int*p,int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)//
{
k=i;//为什么不直接用for(k=0;k<n-1;k++)??
for(j=i+1;j<n;j++)
if(*(p+j)<*(p+k)) k=j;
t=*(p+k);
*(p+k)=*(p+i);//
*(p+i)=t;//为什么是*(p+i)而不是*(p+j)??
}
}
#include
using namespace std;
void main()
{
const int n=5;//声明一个常量N并赋值为5;
int a[n]={8,5,2,7,3};//创建一个数组,
for (int i=0;i {
for (int x=i+1;x答案就在这里:最简单的C++排序问题
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
为什么是(p+i)而不是*(p+j)
因为写错了,应该是你说的那样。
k=i;//为什么不直接用for(k=0;k<n-1;k++)??
这个你自己去看书,这个是标准的插入排序,k代表最小值的下标。
质疑不如直接实践,直接运行,然后看看结果哪个对
两种方式都在vs下运行一下,看哪个结果对。