#include <iostream>
using namespace std;
int ins(int a[],int n,int len)
{
for(int i=0;i<len;i++)
{
if(n>=a[i]&&n<a[i+1])
{
for(int j=i+1;j<len-i;j++)
{
a[j+1]=a[j];
a[i+1]=n;
}
}
}
}
int main()
{
int n,a[100]={1,2,4,8,9,11,13,34,45,78};
cin>>n;
ins(a,n,10);
for(int i=0;i<11;i++)
cout<<a[i]<<" ";
}
输入
25
输出
1 2 4 8 9 11 13 25 34 45 78
修改如下,供参考:
#include <iostream>
using namespace std;
int ins(int a[],int n,int len)
{
int i,j;
for(i=0;i<len;i++)
{
if(n <= a[i]) //if(n>=a[i])&&n<a[i+1])
{
for(j=len;j > i;j--)//for(int j=i+1;j<len-i;j++)
{
a[j]=a[j-1];
//a[i+1]=n;
}
a[i] = n;
break;
}
if(i == len-1)
a[len] = n;
}
}
int main()
{
int n,len,a[]={1,2,4,8,9,11,13,34,45,78};//修改
len = sizeof(a)/sizeof(a[0]); //修改
cin>>n;
ins(a,n,len); //修改
for(int i=0;i<=len;i++) //修改
cout<<a[i]<<" ";
return 0; //修改
}
赋值那里要新建一个数组放进去,不然肯定出问题