用c语言编写一段程序,要求:利用指针将10个整数排序。
时间: 2023-06-14 16:05:14 浏览: 85
以下是一个简单的使用指针进行排序的示例程序:
```c
#include <stdio.h>
void sort(int arr[], int n);
int main() {
int arr[10] = {5, 2, 9, 1, 7, 4, 8, 3, 10, 6};
int n = sizeof(arr) / sizeof(int);
sort(arr, n);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void sort(int arr[], int n) {
int *p1, *p2;
int temp;
for (p1 = arr; p1 < arr + n - 1; p1++) {
for (p2 = p1 + 1; p2 < arr + n; p2++) {
if (*p1 > *p2) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
}
}
}
```
解释一下上面的代码:
- `sort` 函数使用指针 `p1` 和 `p2` 遍历整个数组并交换元素,实现了排序功能。
- 在 `main` 函数中,我们声明了一个包含 10 个整数的数组 `arr`,并将其传递给 `sort` 函数进行排序。
- 在 `sort` 函数中,我们使用两个指针 `p1` 和 `p2` 遍历整个数组。外层循环使用 `p1` 遍历数组,内层循环使用 `p2` 遍历 `p1` 后面的所有元素。如果 `*p1` 大于 `*p2`,则交换它们的值。
最后,我们在 `main` 函数中打印排序后的数组。