[4] 主函数中定义两个数组int a[5]={5,4,8,-1,2},b[10]={1,-1,2,4,8,4,0,9,3,7};用子函数实现从小到大的冒泡排序,子函数为void bubble(int [ ],int);要求在主函数中显示排序前、后的数组a和b的元素。
时间: 2024-12-14 13:28:48 浏览: 2
要在 C 语言中使用子函数 `bubble` 对数组进行冒泡排序,你可以按照以下步骤操作:
1. 定义一个名为 `bubble` 的子函数,接受两个整型指针(分别指向要排序的数组)和它们的长度作为参数。
```c
#include <stdio.h>
// 冒泡排序子函数
void bubble(int* arr, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换当前元素和下一个元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
2. 在主函数中,初始化数组 `a` 和 `b` 并打印原始数组。
```c
int main() {
int a[] = {5, 4, 8, -1, 2};
int b[] = {1, -1, 2, 4, 8, 4, 0, 9, 3, 7};
int na = sizeof(a) / sizeof(a[0]);
int nb = sizeof(b) / sizeof(b[0]);
printf("Original array a: ");
for (int i = 0; i < na; i++) {
printf("%d ", a[i]);
}
printf("\n");
printf("Original array b: ");
for (int i = 0; i < nb; i++) {
printf("%d ", b[i]);
}
printf("\n");
// 调用冒泡排序函数
bubble(a, na);
bubble(b, nb);
// 打印排序后数组 a 和 b
printf("Sorted array a: ");
for (int i = 0; i < na; i++) {
printf("%d ", a[i]);
}
printf("\n");
printf("Sorted array b: ");
for (int i = 0; i < nb; i++) {
printf("%d ", b[i]);
}
printf("\n");
return 0;
}
```
现在,当你运行这个程序,它首先会输出原数组 `a` 和 `b`,然后对这两个数组进行冒泡排序,最后再次显示排序后的数组。
阅读全文