c语言怎么从键盘输入一组整数按照由大到小排成数列显示排序后的结果再任意插入一个整数仍保证数列的递减顺序显示排序后的结果
以下是一个示例代码:
#include <stdio.h>
int main()
{
int nums[100]; // 假设最多输入100个整数
int n = 0; // 记录实际输入的整数个数
// 输入一组整数
printf("请输入一组整数(以0结束):\n");
do {
scanf("%d", &nums[n]);
n++;
} while (nums[n-1] != 0);
// 对整数进行排序(冒泡排序)
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-1-i; j++) {
if (nums[j] < nums[j+1]) {
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
// 显示排序后的结果
printf("排序后的结果为:\n");
for (i = 0; i < n-1; i++) {
printf("%d ", nums[i]);
}
printf("\n");
// 任意插入一个整数
int x;
printf("请输入要插入的整数:\n");
scanf("%d", &x);
// 在适当位置插入整数(从后往前依次比较)
i = n-1;
while (i >= 0 && x > nums[i]) {
nums[i+1] = nums[i];
i--;
}
nums[i+1] = x;
n++;
// 再次进行排序
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-1-i; j++) {
if (nums[j] < nums[j+1]) {
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
// 显示排序后的结果
printf("插入后的结果为:\n");
for (i = 0; i < n-1; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
原文地址: https://www.cveoy.top/t/topic/bhYh 著作权归作者所有。请勿转载和采集!