C语言输入一组整数,从小到大排序,处理到输入结束
时间: 2023-05-26 08:07:38 浏览: 112
以下是C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = NULL;
int num, count = 0;
// 动态分配内存
arr = (int*) malloc(sizeof(int));
while(1) {
printf("请输入一个整数(输入-1结束):");
scanf("%d", &num);
if(num == -1) {
break; // 结束输入
}
// 将输入的整数存入数组
arr[count] = num;
count++;
// 重新分配数组大小
arr = (int*) realloc(arr, sizeof(int) * (count + 1));
}
// 冒泡排序(从小到大)
for(int i = 0; i < count - 1; i++) {
for(int j = 0; j < count - 1 - i; j++) {
if(arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出排序后的数组
printf("排序后的数组为:");
for(int i = 0; i < count; i++) {
printf("%d ", arr[i]);
}
// 释放动态分配的内存
free(arr);
return 0;
}
```
运行结果:
```
请输入一个整数(输入-1结束):3
请输入一个整数(输入-1结束):1
请输入一个整数(输入-1结束):5
请输入一个整数(输入-1结束):2
请输入一个整数(输入-1结束):-1
排序后的数组为:1 2 3 5
```
阅读全文