数据插入到有序数组(难度:半颗星)

来源:互联网 发布:battlelog网络连接错误 编辑:程序博客网 时间:2024/06/11 00:35

问题描述:

输入一个有序的整数序列(从小到大排列),然后再输入一个需要插入到数组中的整数,输出插入数据之前和之后的数列。(要保证插入数据之后数列仍然是从小到大排列)。

例如:
输入数列: 1 2 4 5
待插入数据: 3

插入数据后的数据: 1 2 3 4 5

参考代码:

#include <stdio.h>int arr[100];int main(){    char ch = ' ';    int i, num, nCount = 0;    printf("输入一个数列: ");    while (ch != '\n')    {        scanf_s("%d", &arr[nCount++]);        ch = getchar();    }    printf("输入一个要插入的数: ");    scanf_s("%d", &num);    printf("插入数据前:\n");    for (i = 0; i < nCount; i++)        printf("%d ", arr[i]);    printf("\n");    for (i = nCount - 1; i >= 0 && num < arr[i]; i--)        arr[i + 1] = arr[i];    arr[i + 1] = num;//把数放到正确的位置    nCount++;//数组长度+1    printf("\n插入数据前:\n");    for (i = 0; i < nCount; i++)        printf("%d ", arr[i]);    printf("\n");    return 0;}

运行结果:

这里写图片描述

3 0
原创粉丝点击