早教吧作业答案频道 -->其他-->
求用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-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 …