C语言使用指针插入元素

实例描述

在有序(升序)的数组中插入一个数,使插入后的数组仍然有序。

代码实现

(1)在Visual Studio 2017中选择“文件”→“新建”→ “项目”。

(2)在跳出的界面选择“Windows 桌面”→“Windows桌面向导” → “输入项目名称(输入179)”→“选择保存项目路径,,单击“确定”按钮,创建一个工程步骤完成。

(3)在创建的工程中,在“源文件”右键,选择“添加” →“新建项” →“C++文件(.cpp)”,在下面的位置输入文件名,单击“添加”,完成源文件的的添加。

(4)在代码编辑界面中,开始编写本实例代码。

(5)引用头文件,进行宏定义。

#include<stdio.h>

#define N 10

(6)创建自定义函数insert(),用于实现向有序的数组中插入一个元素,并使插入后的数组仍然有序。代码如下

void insert(int *a, int n, int x)                                /*插入元素的自定义过程*/

{
    
    

    int*p, *q;                                            /*声明指针变量*/

    for (p = a; p < a + n; p++)                                /*遍历数组元素*/

    {
    
    

        if (*p > x)                                        /*找到要插入的位置*/

        {
    
    

            q = p;                                        /*记录要插入的位置*/

            break;                                    /*跳出循环*/

        }

    }

    for (p = a + n; p >= q; p--)                                /*将插入位置之后的数据下移*/

        *p = *(p - 1);

    *q = x;                                            /*插入*/

}

(7)主函数程序代码如下:

void main()

{
    
    

    int i, a[N + 1], an;                                    /*声明变量和数组*/

    int *p;                                            /*声明指针变量*/

    printf("Input 10 seriate integer :\n ");

    for (i = 0; i < N; i++)

        scanf("%d", &a[i]);                                /*输入数组元素*/

    printf("input inserting data: ");

    scanf("%d", &an);                                    /*输入要插入的数*/

    insert(a, N, an);                                        /*进行插入操作*/

    for (p = a; p < a + N + 1; p++)

    {
    
    

        printf("%3d", *p);                                /*输出插入元素后的数组*/

    }

}

引用文献

猜你喜欢

转载自blog.csdn.net/weixin_41194129/article/details/108372851