题目描述
从键盘任意输入一组整数,按照由大到小的顺序排成数列,显示排序后的结果再任意输入一个整数,将其插入数列中,仍保证数列的递减顺序,显示插入后的结果
案例答案
下面是一个使用C语言实现的代码,可以实现从键盘任意输入一组整数,按照由大到小的顺序排成数列,再任意输入一个整数,将其插入数列中,仍保证数列的递减顺序,最后显示插入后的结果:
#include <stdio.h>
#define MAX_SIZE 100
// 插入函数,将value插入到数组a中,使得a仍然保持递减顺序
void insert(int a[], int n, int value) {
int i;
for (i = n - 1; i >= 0; i--) {
if (value > a[i]) {
a[i+1] = a[i];
} else {
break;
}
}
a[i+1] = value;
}
int main() {
int n, i, num;
int a[MAX_SIZE];
// 输入一组整数
printf("Enter the number of integers: ");
scanf("%d", &n);
printf("Enter %d integers: ", n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 排序
for (i = 0; i < n-1; i++) {
int j;
for (j = i+1; j < n; j++) {
if (a[i] < a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
// 显示排序后的结果
printf("Sorted sequence: ");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
// 插入一个整数
printf("Enter an integer to insert: ");
scanf("%d", &num);
insert(a, n, num);
n++;
// 显示插入后的结果
printf("Sequence after insertion: ");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
上述代码首先输入一组整数,然后进行排序,再输入一个整数,将其插入到已排序的数组中。最后显示插入后的结果。
运行上述代码,输入示例数据,将会得到以下输出:
Enter the number of integers: 5
Enter 5 integers: 3 1 4 2 5
Sorted sequence: 5 4 3 2 1
Enter an integer to insert: 6
Sequence after insertion: 6 5 4 3 2 1
上述输出展示了输入一组整数3、1、4、2、5,排序后得到5、4、3、2、1,然后将整数6插入到数组中,得到6、5、4、3、2、1。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END