匿名用户
1级
2019-01-03 回答
#include "stdio.h"
main()
{
int a[23];
int i,j,t,n=0,num[3],g;
for(i=0;i<20;i++)
{
a[i]=rand();
}
/*随机产生数组*/
for(i=0;i<20;i++)
for(j=i+1;j<20;j++)
{
if (a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
/*数组排序*/
printf("initial array:\n");
for(i=0;i<20;i++)
{
if(n==5)
{
n=0;
printf("\n");
}
printf("%d ",a[i]);
n=n+1;
}
/*输出初始化数组*/
printf("\n");
for(i=0;i<3;i++)
{
printf("please input the number:\n");
scanf("%d",&num[i]);
}
/*输入三个数字*/
for(i=0;i<3;i++)
{for(j=0;j<20+i+1;j++)
{
if (a[j]>num[i])
break;
}
for(g=19+i;g>j;g--)
{
a[g+1]=a[g];
}
a[j]=num[i];
}
/*插入三个元素*/
printf("the new array:\n");
for(i=0;i<23;i++)
{
if(n==5)
{
n=0;
printf("\n");
}
printf("%d ",a[i]);
n=n+1;
}
/*输出新的数组*/
getch();
}
结果符合,但是由于不是动态分配,有一定的限制性。