以下是一个冒泡排序程序的示例代码,它可以对输入的任意数量整数进行排序:
```c
#include <stdio.h>
void bubble_sort(int list[], int n) {
int i, j, temp;
for(i = 0; i < n-1; i++) {
for(j = 0; j < n-i-1; j++) {
if(list[j] > list[j+1]) {
temp = list[j];
list[j] = list[j+1];
list[j+1] = temp;
}
}
}
}
int main() {
int n, i;
printf("请输入要排序的整数个数:");
scanf("%d", &n);
int list[n];
printf("请输入%d个整数:", n);
for(i = 0; i < n; i++) {
scanf("%d", &list[i]);
}
bubble_sort(list, n);
printf("排序后的结果是:");
for(i = 0; i < n; i++) {
printf("%d ", list[i]);
}
return 0;
}
```
接下来是测试用例,包括了多种情况,以验证算法在各种情况下的正常工作:
```c
#include <stdio.h>
int main() {
// 测试用例1:对3个整数进行排序
int list1[] = {2, 1, 3};
bubble_sort(list1, 3);
printf("测试用例1:[2, 1, 3] -> [1, 2, 3]
");
for(int i = 0; i < 3; i++) {
printf("%d ", list1[i]);
}
printf("
");
// 测试用例2:对10个整数进行排序
int list2[] = {56, 89, 17, 21, 2, 76, 12, 9, 47, 62};
bubble_sort(list2, 10);
printf("测试用例2:[56, 89, 17, 21, 2, 76, 12, 9, 47, 62] -> [2, 9, 12, 17, 21, 47, 56, 62, 76, 89]
");
for(int i = 0; i < 10; i++) {
printf("%d ", list2[i]);
}
printf("
");
// 测试用例3:对1个整数进行排序
int list3[] = {5};
bubble_sort(list3, 1);
printf("测试用例3:[5] -> [5]
");
for(int i = 0; i < 1; i++) {
printf("%d ", list3[i]);
}
printf("
");
return 0;
}
```
测试结果显示,算法可以正常地对数组进行排序。
温馨提示:答案为网友推荐,仅供参考