早教吧作业答案频道 -->其他-->
求用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)请编写...的网友还看了以下:
C++用函数求一元二次方程的根,a)定义函数完成求解一元二次方程.函数的参数为一元二次方程的三个系 2020-05-14 …
学习函数需要哪些基础知识我只有小学数学的底子.直接学习函数可以嘛?我想学习函数后直接学习高数.这么 2020-06-02 …
不定积分的公式定积分能用么定积分dx前面的直接式子直接求原函数就行么?如果能直接求原函数为什么定积 2020-06-10 …
三道简单的C语言填空,2.c语言程序由函数组成.它的.(A)主函数必须在其他函数之前,函数内可以嵌 2020-06-17 …
有关关系模式规范化问题急有关系模式R(A,B,C,D),R上的函数依赖集F={A->C,C->A, 2020-06-28 …
在平板划线操作中错误的是()A.将接种环放在火焰上灼烧,直到接种环烧红B.将烧红的接种环在火焰旁边 2020-07-03 …
请问两个函数合在一起可以直接求原函数吗?例如:已知f(x)g(x)及他们的原函数,导函数或N次原函 2020-07-23 …
根据反演规则和对偶规则直接写出函数F=A(B+C)+CD的反函数和对偶函数 2020-08-01 …
图14-11-3是研究全电路欧姆定律的演示实验装置,图中电压表都是理想的,若接线完全正确,则()A. 2020-12-05 …
关于反函数定义域的求法1.根据原函数的值域求反函数的定义域2.先不求原函数的值域,直接进行变形,然后 2021-01-31 …