指针作为函数参数、指针访问数组元素02(C)

编写函数,在上题的基础上,将某一整数插入到有序的数组中,并保持该数组的有序性
 

/*===============================================
*作业: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");                                                                    //输出换行符
}

猜你喜欢

转载自blog.csdn.net/ukco_well/article/details/82084907