建立一个数组先排序然后插入 但是到插入的时候遇到问题了 看下面的注释
#include<stdio.h>
void main()
{
int a[20],i,j,n,num,temp;
i=0;
printf("请输a[]的值,以-1作为结束标志\n\n"); //建立数组//
do
{
printf("输入a[%d]的值:",i);
scanf("%d",&a[i]);
}while(i<19 && a[i++]!=-1);
n=i-1;
printf("排序前的数组\n");
for(i=0;i<n;i++)
{
printf("%5d",a[i]);
}
putchar('\n');
printf("排序后的数组\n"); //降序排列//
for(i=1;i<=n-1;i++)
{
for(j=n-1;j>=i;j--)
{
if(a[j]>a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
for(i=0;i<n;i++)
{
printf("%5d",a[i]);
}
putchar('\n');
printf("请输入一个要插入的数:"); //实现插入//
scanf("%d",&num);
for(i=0;i<n;i++)
{
if(num > a[i])
{
for(j=n-1;j>=i;j--)
{
a[j+1]=a[j];
}
a[i]=num;
break;
}
else //如果插入的数比数组中最小的数还小,这段代码怎么写??//
{
a[] //我是这样写的 else
} { a[n+1]=num;} 可是运行时有问题. 请指教
}
n+=1;
printf("插入后的数组\n");
for(i=0;i<n;i++)
{
printf("%5d",a[i]);
}
printf("\n");
}