请用C语言编写一个程序,要求:可以实现多组输入。输入一个数字 a,再输入任意个整数(已按从小到大的顺序排列好,可能有重复)。把数字 a 插入到数列中,而且仍保持有序,同时输出新序列。
时间: 2023-06-23 18:10:35 浏览: 106
```c
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int a, nums[MAX_SIZE], n;
while (1) {
// 输入数字 a 和数列长度 n
printf("请输入数字 a 和数列长度 n(以空格分隔):");
scanf("%d %d", &a, &n);
// 输入数列
printf("请输入数列中的 %d 个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
// 插入数字 a
int i;
for (i = n; i >= 1 && nums[i-1] > a; i--) {
nums[i] = nums[i-1];
}
nums[i] = a;
// 输出新序列
printf("新序列为:");
for (int i = 0; i < n+1; i++) {
printf("%d ", nums[i]);
}
printf("\n");
// 是否继续输入
printf("是否继续输入?(Y/N):");
char c;
scanf(" %c", &c);
if (c == 'N' || c == 'n') {
break;
}
}
return 0;
}
```
这里我使用了 `while(1)` 循环,表示程序会一直运行,直到用户选择退出。在循环中,首先输入数字 a 和数列长度 n,然后输入 n 个整数,接着将数字 a 插入到数列中,最后输出新序列。循环结束后会询问用户是否继续输入,如果选择 N/n,则程序结束。
阅读全文