#include <stdio.h> #define N 10

void bubbleSort(int a[], int n); // 冒泡排序函数 void insert(int a[], int *n, int num); // 插入新数据函数

int main() { int a[N]; int n, i, num; char choice;

// 输入数据个数
printf('请输入数据个数n(n不得超过%d):', N);
scanf('%d', &n);

// 输入n个整数
for (i = 0; i < n; i++) {
    printf('第%d个数:', i+1);
    scanf('%d', &a[i]);
}

// 排序并输出
bubbleSort(a, n);
printf('排好序的数据为:');
for (i = 0; i < n; i++) {
    printf('%d ', a[i]);
}
printf('\n');

// 插入新数据并输出
do {
    printf('请输入一个新的数据:');
    scanf('%d', &num);
    insert(a, &n, num);
    printf('新的数据列表为:');
    for (i = 0; i < n; i++) {
        printf('%d ', a[i]);
    }
    printf('\n');

    // 判断是否继续插入数据
    printf('是否继续插入数据?(Y/N)');
    getchar(); // 消耗掉之前输入的换行符
    scanf('%c', &choice);
} while (choice == 'Y' || choice == 'y');

return 0;

}

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

void insert(int a[], int *n, int num) { int i; if (*n == N) { // 判断是否已满 printf('数据已满,无法插入!\n'); return; } for (i = *n-1; i >= 0 && a[i] < num; i--) { // 将比num大的数往后移 a[i+1] = a[i]; } a[i+1] = num; // 将num插入到正确的位置 (*n)++; // 数据个数加1 }

C语言数组排序与插入数据 - 冒泡排序实现

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

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