|
发表于 2023-10-2 22:59:04
|
显示全部楼层
以下是一个用C语言实现的将输入的正数按升序插入数组中并输出的示例代码:
- #include <stdio.h>
- #define MAX_SIZE 100 // 数组最大容量
- int main() {
- int arr[MAX_SIZE];
- int n, i, j, temp;
- printf("请输入一个正数:");
- scanf("%d", &n);
- // 循环读入并排序输出
- for (i = 0; n >= 0; i++) {
- arr[ i] = n; // 把输入的数插入到数组中
- // 排序
- for (j = i; j > 0 && arr[j-1] > arr[j]; j--) {
- temp = arr[j];
- arr[j] = arr[j-1];
- arr[j-1] = temp;
- }
- // 输出当前数组
- printf("当前数组的元素有:");
- for (j = 0; j <= i; j++) {
- printf("%d ", arr[j]);
- }
- printf("\n");
- // 继续读入下一个数
- printf("请输入下一个正数:");
- scanf("%d", &n);
- }
- return 0;
- }
复制代码
运行上述程序时,首先会要求用户输入一个正数,该数会被插入到数组中。然后,每次读入一个正数,在把它插入到数组中之前,都会先对数组进行升序排序,并输出当前的数组元素。当用户输入的数是负数时,程序就会停止。
需要注意的是,上面的示例代码中只能处理最多 MAX_SIZE 个数,如果输入的正数数量超过了数组的容量限制,程序就会出现错误。为了避免这种情况,可以使用动态数组或链表等数据结构来代替固定大小的数组。
如果问题已经解决,请设置最佳答案 |
|