#include<iostream>
#define maxsize 100
using namespace std;
int arr[maxsize]={-2,3,6,1,7,9,11,4,-5,9};
int length=10;
void partation(int arr[],int length,int k)
{
int i=0;
int j=length-1;
int temp=arr[0];
while(i<j)
{
while(i<j&&k<=arr[j])
--j;
if(i<j)
{
arr[i]=arr[j];
i++;
}
while(i<j&&k>arr[i])
++i;
if(i<j)
{
arr[j]=arr[i];
j++;
}
}
arr[i]=temp;
}
int insert(int arr[],int length,int n,int c)
{
if(n<0||n>length-1||length>=maxsize)
return 0;
for(int i=length-1;i>n;++i)
arr[i+1]=arr[i];
arr[n]=c;
return 1;
}
int main()
{
partation(arr,length,5);
insert(arr,length,3,100);
for(int i=0;i<length;++i)
cout<<arr[i]<<" ";
return 0;
}
错了,循环中i>n改成i>n-1,这样第n个才能后移
for(int i=length-1;....) arr[i+1]=... 当i=length-1时,arr[i+1]就越界了
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html