题目详情
编写函数,使用指针对一维整型数组进行插入排序。要求函数中不出现下标运算。
编写主函数,输入若干整数,以-9999为结束标志。调用函数排序,在主函数中输出。元素总个数不超过100个。
输入格式:
若干用空格隔开的整数,以-9999为结束标志。
输出格式:
用空格隔开的从小到大排序的整数,用空格隔开,末尾无空格。
输入样例:
20 4 3 10 34 -9999
输出样例:
3 4 10 20 34
个人思路
- 下面代码
#include <iostream>
using namespace std;
int main()
{
int temp,i=0;
int *p = new int [100];
cin>>temp;
while(temp!=-9999){
*(p+i)=temp;
i++;
cin>>temp;
}
int n=i,j;
for(i=0;i<n;i++) //下标为i的数组元素参与排序
{ temp = *(p+i);
for(j=i-1;j>=0 && *(p+j)>temp;j--)
{
*(p+j+1) = *(p+j);
}
*(p+j+1) = temp;
}
if(n!=0) cout<<*p;
for(i=1;i<n;i++)
{
cout<<' '<<*(p+i);
}
delete []p;
return 0;
}