C语言在已经排好的一维数组里插入一个数

#include"stdio.h"
void main()
{
int a[6]={1,3,5,7,9};
int i,j,n;
scanf("%d",&n);
for(i=0;i<=4;i++)
{
if(n>=a[i]&&n<=a[i+1])
{
for(j=5;j>i;j--)
a[j]=a[j-1];
a[i+1]=n;
break;
}
}
for(i=0;i<=5;i++)
printf("%d",a[i]);
}

如果我输入比原数组里最大的那个数.还要大的数.
那么就会变成0
为什么/要怎么修改?
如果比原来数组里最小的数还要小的数.输进去.也会出现错误.

第1个回答  2009-12-10
改过来了,自己看吧:
#include"stdio.h"
void main()
{
int a[6]={1,3,5,7,9};
int i,j,n;
scanf("%d",&n);
for(i=0;i<=4;i++)
{
if(n>a[4])
a[5]=n;
else
if(n>=a[i]&&n<=a[i+1])
{
for(j=5;j>i;j--)
a[j]=a[j-1];
a[i+1]=n;
break;
}
}
for(i=0;i<=5;i++)
printf("%d",a[i]);
}本回答被提问者采纳
相似回答