早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求用C语言编写程序(1)请编写一个函数,从键盘上输入一个数,将该数插入到一个有序的数组中,该数组仍然有序。(2)在(1)的基础上完成直接插入排序法,对一组无序的数,使用直接

题目详情
求用C语言编写程序
(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;
}
看了求用C语言编写程序(1)请编写...的网友还看了以下:

做作业实在不会,大侠们帮忙“编写一个网页文件,使用一个表单让用户填写购货订单。”“编写一个网页文件  2020-04-06 …

想问一个有机化合物命名的问题编号码80年新《规则》中规定主碳链的编号要符合“最低系列原则”.旧规则  2020-05-02 …

某旅店有10个房间,如果用0-9这10个数字给每个房间的钥匙编上号,每个编号能使服务员很容易辨认是  2020-05-16 …

这是基因突变还是染色体变异?目的基因误插入受体细胞基因的非编码区,使受体细胞基因不能表达.提问RT  2020-05-17 …

实现一个简单的文章编辑器,使其能够录入、统计、插入、删除、查找/替换等功能.具体要求:能够录入或载  2020-05-17 …

学校操场长30米,宽24米,现在要在四角和四周插旗杆,使相邻的距离相等,最远因隔几米插一根?一共需  2020-05-22 …

约瑟夫问题:n个骑士编号1,2,.,围坐圆桌旁找出最后留在圆桌旁的骑士编号(1)编编写一个函数模板  2020-06-06 …

编写一个完整的程序,实现顺序表的建立、插入、删除、输出等基本运算.(1)建立一个顺序表,含有n个数  2020-07-19 …

初一英语作文段落编写.使用所给的词语,编写一个意义相对完整的语段.词语:favorite,hist  2020-08-03 …

如图,将插线板的插头插入家庭电路的三孔插座使用时,下列说法正确的是()A.插线板插孔L与N之间的电压  2020-11-03 …