用C语言编写程序,输入n个整数排序并输出。要求用冒泡法排序,将排序单独写成一个函数,n个整数在主函数中输入,排序结果在主函数中输出。编写程序,用指针实现上述功能要求。
时间: 2024-03-26 11:36:20 浏览: 52
好的,我会尽力回答你的问题。以下是用指针实现冒泡排序的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("请输入整数个数n:");
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]);
}
return 0;
}
```
在这个程序中,我们首先定义了一个 `bubble_sort` 函数,它接受一个整型指针 `arr` 和一个整数 `n` 作为参数,用冒泡排序算法对 `arr` 数组进行排序。
在主函数中,我们先读入整数个数 `n`,然后定义一个长度为 `n` 的整型数组 `arr`,并读入 `n` 个整数到这个数组中。接着调用 `bubble_sort` 函数对 `arr` 数组进行排序,最后输出排序结果。
需要注意的是,在函数中我们是通过指针访问数组元素的,因此需要使用 `*(arr + i)` 的形式来访问数组元素,而不能使用 `arr[i]` 的形式。
阅读全文