c语言 用两种指针方法完成:输入a和b两个整数,按从大到小顺序输出
时间: 2023-11-27 20:51:28 浏览: 48
下面是两种指针方法实现从大到小输出a和b的值:
方法一:使用指向a和b的指针,比较它们的值并交换它们的位置,最终输出结果。
```c
#include <stdio.h>
void swap(int *a, int *b);
int main() {
int a, b;
printf("请输入两个整数:\n");
scanf("%d %d", &a, &b);
if (a < b) { // 如果a比b小,则交换它们的位置
swap(&a, &b);
}
printf("%d %d\n", a, b);
return 0;
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
方法二:使用指向a和b的指针,将它们的地址存储在一个数组中,然后使用冒泡排序对数组进行排序,最终输出结果。
```c
#include <stdio.h>
void bubbleSort(int *arr, int n);
int main() {
int a, b;
printf("请输入两个整数:\n");
scanf("%d %d", &a, &b);
int arr[2] = {a, b}; // 将a和b的地址存储在数组中
bubbleSort(arr, 2); // 对数组进行冒泡排序
printf("%d %d\n", arr[1], arr[0]); // 输出结果
return 0;
}
void bubbleSort(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;
}
}
}
}
```