输入n个整数排序并输出,要求用冒泡排序法将排序写成一个函数,n个整体在主函数输出,用指针实现功能
时间: 2024-02-27 11:57:26 浏览: 69
好的,我了解了你的问题。以下是冒泡排序的实现代码,使用指针实现:
```c
#include <stdio.h>
void bubble_sort(int *arr, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (*(arr + j) > *(arr + j + 1)) {
int temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
int main() {
int n;
printf("请输入要排序的整数个数:");
scanf("%d", &n);
int arr[n];
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
bubble_sort(arr, n);
printf("排序后的结果为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在主函数中,我们先输入整数的个数n,然后定义一个长度为n的数组arr。接着使用for循环遍历整个数组,输入n个整数。
然后我们调用bubble_sort函数进行排序,传入参数为数组arr和整数的个数n。
在bubble_sort函数中,我们使用两个for循环实现冒泡排序的过程,对于每两个相邻的元素,如果前面的元素大于后面的元素,则交换它们的位置。
最后在主函数中,我们输出排好序的数组arr。
注意:由于数组arr是在main函数中定义的,所以在传入bubble_sort函数时,使用的是数组名arr的地址,即不需要使用&符号。
阅读全文