编写函数,在上题的基础上,将某一整数插入到有序的数组中,并保持该数组的有序性
/*===============================================
*作业:E62
*学号:1527403059
*作者:陆胤任
*功能:将某一整数插入到有序的数组中,并保持该数组的有序性
*时间:2015.12.21
*==============================================*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
/*function declare
@brief:将某一整数插入到有序的数组中,并保持该数组的有序性
@param:int *p:指针
int n:数组长度
int a:需要插入的正整数
@reveal:void*/
void sort(int *p,int n,int a); //声明void sort(int *p,int n)函数
/*function define*/
int main()
{
int *arry,n;
int a;
printf("请输入数组长度和一个正整数:\n");
scanf("%d%d",&n,&a); //输入数组长度
arry=(int*)malloc(sizeof(int)*n);
sort(arry,n,a); //调用函数
return 0;
}
void sort(int *p,int n,int a) //定义void sort(int *p,int n)函数
{
int i,j;
int temp;
srand((unsigned)time(NULL)); //随机初始化数组
for(i=0;i<n;i++)
{
p[i]=rand()%100;
}
for(i=0;i<n-1;i++) //循环对数组进行排序
{
for(j=i+1;j<n;j++)
{
if(p[i]>p[j])
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
}
for(i=n-1;i>=0;i--) //循环将输入的整数排序到数组中,并保持原数组的顺序
{
if(a>p[i])
{
p[n]=a;
break;
}
if(a<p[i])
{
p[i+1]=p[i];
p[i]=a;
}
}
printf("排序后的数组为:\n");
for(i=0;i<=n;i++) //输出排序后的数组
{
printf("%5d",p[i]);
}
printf("\n"); //输出换行符
}