今重复输入一个正数,按升序规律把这个数插入到数组中,输出这个数组的所有数,直到输入一个负数停止C语言
时间: 2024-12-16 17:16:18 浏览: 8
在C语言中,你可以使用循环结构和数组操作来实现这样的功能。首先,我们需要创建一个动态数组,然后提示用户输入正数并将其插入到已排序的数组中。当用户输入负数时,我们停止输入并将数组内容打印出来。下面是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 需要用到动态内存分配
int main() {
int *arr; // 动态数组指针
int size = 0;
int num;
arr = (int*)malloc(sizeof(int)); // 初始容量为1
printf("请输入第一个正数(输入负数结束): ");
scanf("%d", &num);
while (num >= 0) { // 只要输入的是正数
size++;
arr = (int*)realloc(arr, sizeof(int) * (size + 1)); // 扩展数组容量
arr[size] = num;
printf("已将 %d 插入数组, ", num);
printf("当前数组: "); // 打印当前数组
for (int i = 0; i <= size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
printf("请输入下一个正数(输入负数结束): ");
scanf("%d", &num);
}
free(arr); // 释放内存
return 0;
}
```
阅读全文