欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用指针插入元素,在有序(升序)的数组中插入一个数,使插入后的数组仍然有序。 要求:自定义函数insert(int *a, int n, int x),用于实现向有序的数组中插入一个元素,并使插入后的

程序员文章站 2022-03-13 12:27:35
...

使用指针插入元素,在有序(升序)的数组中插入一个数,使插入后的数组仍然有序。
要求:自定义函数insert(int *a, int n, int x),用于实现向有序的数组中插入一个元素,并使插入后的数组仍然有序,参数分别表示指向数组的指针,有序数字的个数,插入的数。

程序运行结果示例:
输入:请输入10个有序数字 :
1 3 8 9 10 12 13 45 61 90
input inserting data: 11
输出: 1 3 8 9 10 11 12 13 45 61 90

输入提示:"请输入10个有序数字 :\n "
输入格式:%d
输入提示:"input inserting data: "
输入格式:%d
输出格式:%5d

#include <stdio.h>
#include <stdlib.h>
#define N 10
void insert(int *a,int num)
{
	int i,j;
	for( i=0;i<=N;i++)    //从开始往后遍历,找到比num大的数值 
	{
		if(num<*(a+i))
		break;
	}
   for(j=N+1;j>i;j--)        //把元素依次往后面推,完成插入的动作 
   {
     *(a + j) = *(a + j - 1);
    }
    *(a + i) = num;
}
int main( )
{
    int a[N + 1], add_num;
    int *p;
    printf("请输入10个有序数字 :\n ");
    for (int i = 0; i < N; i++)
        scanf("%d", &a[i]);
    printf("input inserting data: ");
    scanf("%d", &add_num);
    insert(a, add_num);
    for (int i = 0; i < N + 1; ++i)
    {
        printf("%5d", a[i]);
    }
    return 0;
}
相关标签: 指针 c++