用指针变量指向数组元素的方法将一个整型数组a中的10个元素使用冒泡法进行升序排列,要求从键盘输入10个整数,数据输入、排序、输出均用指针操作。程序如下:
时间: 2024-02-03 08:15:51 浏览: 66
```
#include <stdio.h>
void bubble_sort(int *arr, int n);
int main() {
int a[10];
int i;
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
bubble_sort(a, 10);
printf("升序排列后的结果为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", *(a + i));
}
return 0;
}
void bubble_sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (*(arr + j) > *(arr + j + 1)) {
temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
```
解释:
先定义一个 `bubble_sort` 函数,用于实现冒泡排序。接收一个整型数组的指针 `arr` 和数组长度 `n` 作为参数。
在主函数中,定义一个长度为 10 的整型数组 `a`,循环从键盘输入 10 个整数,然后调用 `bubble_sort` 函数进行排序,最后循环输出排序后的结果。
在 `bubble_sort` 函数中,使用两层循环实现冒泡排序,每次比较相邻两个元素的大小,如果前面的元素大于后面的元素,则交换它们的位置。注意,这里使用了指针操作来访问数组元素。
阅读全文