P242 例8.10 用指针方法对10个整数按由大到小顺序排列(指针+冒泡排序)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
void Bsort(int* p, int n);
int a[10]={0}, i;
int* p = a;
printf("请输入10个整数:");
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
printf("\n初始数组顺序为:");
for (i = 0; i < 10; i++) {
printf("%3d", a[i]);
}
Bsort(p, 10);
printf("\n排序后的数组顺序为:");
for (i = 0; i < 10; i++) {
printf("%3d", a[i]);
}
printf("\n");
return 0;
}
void Bsort(int* p, int n) {
int i, j;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
int tmp = 0;
if (*(p + j) < *(p + j + 1)) {
tmp = *(p + j);
*(p + j) = *(p + j + 1);
*(p + j + 1) = tmp;
}
}
}
}
运行结果:
注意:这里在控制台输入整数时,两个数字之间得用空格分隔开,不能用逗号