有一个从小到大的数组A。现输入一个无序列表B,要求按从小到大的规律将输入列表插入排序好的原数组A中
1个回答
展开全部
保持从大到小的顺序,连续插入随机数列,参考代码如下:
#include<stdio.h>
#define N 8
#define MAXLEN 20
int a[MAXLEN]={1,5,7,8,9,9,10,11};
int orderinsert(int *a, int *l, int e)
{
int i;
if(*l>=MAXLEN||a==NULL)
return 0;
for(i=*l-1;i>=0;--i)
if(e<a[i])
a[i+1]=a[i];
else break;
a[i+1]=e;
++*l;
return 1;
}
int main()
{
int i,l=N;
int b[10];
printf("原有有序数列:\n");
for(i=0;i<l;++i)
printf("%d ",a[i]);
printf("\n随意输入10个整数:\n");
for(i=0;i<10;++i){
scanf("%d",&b[i]);
orderinsert(a,&l,b[i]);
}
printf("结果数列:\n");
for(i=0;i<l;++i)
printf("%d ",a[i]);
return 0;
}
#include<stdio.h>
#define N 8
#define MAXLEN 20
int a[MAXLEN]={1,5,7,8,9,9,10,11};
int orderinsert(int *a, int *l, int e)
{
int i;
if(*l>=MAXLEN||a==NULL)
return 0;
for(i=*l-1;i>=0;--i)
if(e<a[i])
a[i+1]=a[i];
else break;
a[i+1]=e;
++*l;
return 1;
}
int main()
{
int i,l=N;
int b[10];
printf("原有有序数列:\n");
for(i=0;i<l;++i)
printf("%d ",a[i]);
printf("\n随意输入10个整数:\n");
for(i=0;i<10;++i){
scanf("%d",&b[i]);
orderinsert(a,&l,b[i]);
}
printf("结果数列:\n");
for(i=0;i<l;++i)
printf("%d ",a[i]);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询