代码如下:

#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 }

1定义一个一维整型数组int aN;N由宏定义实现#define N 102提示用户输入数据个数n n不得超过N3输入n个整数依次存入数组a要求每次输入有提 示信息如第1个数第2个数 4采用冒泡排序法对输入的n个数进行排序由大到小然后输出排好序的数据输出在一-行内5提示用户输入1个新的数据然后将该数据插入到数组中保持由大到小的顺序并显示新的数据列表输出在一行内。6询问用户是否需要继续插入数据按Y或

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

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