#include <stdio.h>
#define N 10

void sort(int a[], int n); // 冒泡排序
void insert(int a[], int n, int x); // 插入新数据
void print(int a[], int n); // 输出数组

int main()
{
    int a[N];
    int n, x;
    printf('请输入数据个数(不超过%d):', N);
    scanf('%d', &n);
    printf('请依次输入%d个整数:\n', n);
    for (int i = 0; i < n; i++) {
        printf('第%d个数:', i + 1);
        scanf('%d', &a[i]);
    }
    sort(a, n);
    printf('排序后的数据:');
    print(a, n);
    while (1) {
        printf('请输入一个新的数据:');
        scanf('%d', &x);
        if (n == N) {
            printf('数据已满,无法插入,程序结束。\n');
            break;
        }
        insert(a, n, x);
        n++;
        printf('新的数据列表:');
        print(a, n);
        printf('是否继续插入数据?(Y/N)');
        char c;
        scanf(' %c', &c);
        if (c == 'N' || c == 'n') {
            break;
        }
    }
    return 0;
}

void sort(int a[], int n)
{
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (a[j] < a[j + 1]) {
                int temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
}

void insert(int a[], int n, int x)
{
    int i;
    for (i = n - 1; i >= 0; i--) {
        if (a[i] < x) {
            a[i + 1] = a[i];
        } else {
            break;
        }
    }
    a[i + 1] = x;
}

void print(int a[], int n)
{
    for (int i = 0; i < n; i++) {
        printf('%d ', a[i]);
    }
    printf('\n');
}

原文地址: https://www.cveoy.top/t/topic/l3BG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录