早教吧作业答案频道 -->其他-->
求用C语言编写程序(1)请编写一个函数,从键盘上输入一个数,将该数插入到一个有序的数组中,该数组仍然有序。(2)在(1)的基础上完成直接插入排序法,对一组无序的数,使用直接
题目详情
求用C语言编写程序
(1)请编写一个函数,从键盘上输入一个数,将该数插入到一个有序的数组中,该数组仍然有序。
(2)在(1)的基础上完成直接插入排序法,对一组无序的数,使用直接插入排序法来进行排序。该排序的思想是:对于一组n个数,第一个数记为有序的序列,将第二个数插入后得到2个数的有序序列,将第3个数插入后得到3个数的有序序列,直到第n个数插入,得到n个有序的序列,完成排序。
(1)请编写一个函数,从键盘上输入一个数,将该数插入到一个有序的数组中,该数组仍然有序。
(2)在(1)的基础上完成直接插入排序法,对一组无序的数,使用直接插入排序法来进行排序。该排序的思想是:对于一组n个数,第一个数记为有序的序列,将第二个数插入后得到2个数的有序序列,将第3个数插入后得到3个数的有序序列,直到第n个数插入,得到n个有序的序列,完成排序。
▼优质解答
答案和解析
/*经测试,程序均正确运行,希望能帮助你*/
/******************1*****************/
#include
void insert(int *arr,int n,int val)
{
int i;
for(i=n;arr[i-1]>val && i>0;i--)
arr[i]=arr[i-1];
arr[i]=val;
}
int main()
{
int arr[20]={1,3,9,11,20,24,32};
int v1=18,v2=0,v3=40;
int i;
printf("插入18\n");
insert(arr,7,v1);
for(i=0;i<8;i++)
printf("%d ",arr[i]);
printf("\n");
printf("插入0\n");
insert(arr,8,v2);
for(i=0;i<9;i++)
printf("%d ",arr[i]);
printf("\n");
printf("插入40\n");
insert(arr,9,v3);
for(i=0;i<10;i++)
printf("%d ",arr[i]);
return 0;
}
/******************2*****************/
#include
#define N 10
void insert(int *arr,int n,int val)
{
int i;
for(i=n;arr[i-1]>val && i>0;i--)
arr[i]=arr[i-1];
arr[i]=val;
}
int main()
{
int arr[20],val;
int i;
printf("输入%d个整数:\n",N);
for(i=0;i {
scanf("%d",&val);
insert(arr,i+1,val);
}
printf("排序后:\n");
for(i=0;i printf("%d ",arr[i]);
return 0;
}
/******************1*****************/
#include
void insert(int *arr,int n,int val)
{
int i;
for(i=n;arr[i-1]>val && i>0;i--)
arr[i]=arr[i-1];
arr[i]=val;
}
int main()
{
int arr[20]={1,3,9,11,20,24,32};
int v1=18,v2=0,v3=40;
int i;
printf("插入18\n");
insert(arr,7,v1);
for(i=0;i<8;i++)
printf("%d ",arr[i]);
printf("\n");
printf("插入0\n");
insert(arr,8,v2);
for(i=0;i<9;i++)
printf("%d ",arr[i]);
printf("\n");
printf("插入40\n");
insert(arr,9,v3);
for(i=0;i<10;i++)
printf("%d ",arr[i]);
return 0;
}
/******************2*****************/
#include
#define N 10
void insert(int *arr,int n,int val)
{
int i;
for(i=n;arr[i-1]>val && i>0;i--)
arr[i]=arr[i-1];
arr[i]=val;
}
int main()
{
int arr[20],val;
int i;
printf("输入%d个整数:\n",N);
for(i=0;i
scanf("%d",&val);
insert(arr,i+1,val);
}
printf("排序后:\n");
for(i=0;i
return 0;
}
看了求用C语言编写程序(1)请编写...的网友还看了以下:
俄罗斯套娃奖品有没有有想法的啊.急.伊万洛夫在比武大会上力克群雄,成为新一届“草原雄鹰”,为部落赢 2020-04-25 …
从胸有成竹谈起宋朝有个画家叫文同,擅长画竹子.他画竹子的时候从不打草稿,随意挥洒,样样翠竹便栩栩如 2020-04-26 …
只要是未满18周岁的我国公民,都属于未成年人保护法保护的对象。但有违法行为的未成年人,不属于未成年 2020-05-15 …
有两个人做生意折了本,仅剩一文钱,其中一人准备扔掉时,另一个灵机一动,说:“有办法了.”于是他们用 2020-06-13 …
有学者评价西晋陆机所写的《平复帖》:“每一个字已不再是生硬的符号,而变成了有血有肉的个性人物,顾盼 2020-06-19 …
小话题:你知道Janbu的读法吗?在边坡极限平衡计算方法里,有种方法叫做Janbu法,有的书本叫做 2020-06-25 …
四则混合运算的规律:①在有括号的算式里,先算,再算.②在没有括号的算式里,既有加减法,又有乘除法时 2020-06-27 …
如图表示洋葱根尖细胞有丝分裂各阶段细胞核中DNA和细胞质中信使RNA含量变化.下列有关说法正确的是 2020-07-15 …
漫画体现了法律的作用有()①法律规范社会成员的行为②人们的日常生活离不开法律③解决公民的民事纠纷④ 2020-07-23 …
《管子·任法》中说“有生法,有守法,有法于法。夫生法者君也,守法者臣也,法于法者民也”。其“法治” 2020-07-29 …