长度为N的整数数组中有n个数(n<N),请编写函数实现:
(1)对其中的n个数进行从小到大排序;
(2)将一个数按照顺序插入上述数组中,使得插入后数组仍满足从小到大的顺序。
然后编写相应的主函数对这两个函数进行测试。
用函数做,只有一个主函数的勿扰
#include <stdio.h>
#define N 30
void paixu(int a[],int n);
void charu(int a[],int n,int k);
void main()
{
int i,k,a[N],n,j;
printf("请输入n:");
scanf("%d",&n);
printf("请输入%d个数:",n);
for(i = 0;i < n;i ++)
{
scanf("%d",&a[i]);
}
paixu(a,n);
printf("排序后的数字为:");
for(i = 0;i < n;i ++)
printf("%2d",a[i]);
printf("\n");
printf("请输入要插入的数:");
scanf("%d",&k);
charu(a,n,k);
printf("排序后的数字为:");
for(i = 0;i < n + 1;i ++)
printf("%2d",a[i]);
printf("\n");
}
void paixu(int a[],int n)
{
int i,j,temp;
for(j = 0;j < n - 1;j ++)
{
for(i = 0;i < n - 1 - j;i ++)
{
if(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
}
void charu(int a[],int n,int k)
{
int i,j;
//paixu(a,n);
for(i = 0;i < n;i ++)
{
if(k < a[i])
{
for(j = n;j > i ;j --)
{
a[j] = a[j - 1];
a[i] = k;
}
}
}
}