关于整形数组按序插入一个数代码的错误
#include <stdio.h>#include <stdlib.h>
void Sort(int*p,int n)
{
int i,j,temp;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(*(p+i)<*(p+j))
{
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
void Insert(int*p,int n,int num)
{
int i,j,temp1,temp2;
if(num<=*(p+n-1))
*(p+n)=num;
else
for(i=0;i<n;i++)
{
if(num>=*(p+i))
{
temp1=*(p+i);
*(p+i)=num;
for(j=i+1;j<=n;j++)
{
temp2=*(p+j);
*(p+j)=temp1;
temp1=temp2;
}
}
}
}
void main()
{
int a[11],*p=a,i,num;
printf("please input 10 munbers:\n");
for(i=0;i<10;i++)
scanf("%d",p+i);
Sort(p,10);
printf("排序后的数组:\n");
for(i=0;i<10;i++)
printf("%5d",*(p+i));
printf("\n");
printf("please input the insert number:");
scanf("%d",&num);
Insert(p,10,num);
for(i=0;i<11;i++)
printf("%5d",*(p+i));
system("pause");
}
排序什么的都是对的,就是中间插入一个数字的时候出问题了,比如