用c语言输入10个整数,利用指针分别由小到大、由大到小排序
时间: 2024-03-05 14:52:25 浏览: 99
可以使用指针来实现对10个整数的排序,具体步骤如下:
1. 使用scanf函数获取输入的10个整数。
2. 定义两个指针,一个指向数组的第一个元素,另一个指向数组的最后一个元素。
3. 使用冒泡排序的思想,从第一个元素开始,分别比较相邻的两个元素,如果前一个元素比后一个元素大,则交换它们的位置。
4. 每一轮排序后,指针向中间移动一个位置,直到两个指针相遇为止。这样就可以实现对数组的排序。
以下是代码示例:
```c
#include <stdio.h>
void bubble_sort(int *arr, int len) {
int *p1 = arr; // 指向数组的第一个元素
int *p2 = arr + len - 1; // 指向数组的最后一个元素
while (p1 < p2) {
int *p = p1;
while (p < p2) {
if (*p > *(p+1)) {
int temp = *p;
*p = *(p+1);
*(p+1) = temp;
}
p++;
}
p2--;
while (p > p1) {
if (*p < *(p-1)) {
int temp = *p;
*p = *(p-1);
*(p-1) = temp;
}
p--;
}
p1++;
}
}
int main() {
int arr[10];
printf("请输入10个整数:");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
bubble_sort(arr, 10);
printf("排序后的结果为:");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在上述代码中,bubble_sort函数用于实现排序,它接受一个整型数组和数组的长度作为参数。在函数中定义两个指针p1和p2,它们分别指向数组的第一个元素和最后一个元素。使用两层循环,分别从左向右和从右向左遍历数组,比较相邻的两个元素,如果前一个元素比后一个元素大,则交换它们的位置。每一轮排序后,指针向中间移动一个位置,直到两个指针相遇为止。最终实现对数组的排序。
阅读全文