交换顺序的程序可以通过多种方式实现,以下是几种常见的方法:
方法一:使用指针
```c
include
void swap(int *p1, int *p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main() {
int n1, n2;
int *q1, *q2;
printf("请输入两个整数:");
scanf("%d %d", &n1, &n2);
q1 = &n1;
q2 = &n2;
swap(q1, q2);
printf("交换后的顺序为:%d %d\n", n1, n2);
return 0;
}
```
方法二:使用数组和循环
```c
include
void swap1(int *X, int i, int j) {
int temp = X[i];
X[i] = X[j];
X[j] = temp;
}
int main() {
int List;
int i, N = 10;
for (i = 0; i < N; i++) {
List[i] = i;
}
printf("原始数组:");
for (i = 0; i < N; i++) {
printf("%d ", List[i]);
}
printf("\n");
swap1(List, 4, 9);
printf("交换后的数组:");
for (i = 0; i < N; i++) {
printf("%d ", List[i]);
}
printf("\n");
return 0;
}
```
方法三:使用递归
```c
include
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void swap_recursive(int arr[], int i, int j) {
if (i < j) {
swap(&arr[i], &arr[j]);
swap_recursive(arr, i + 1, j - 1);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr);
printf("原始数组:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
swap_recursive(arr, 0, size - 1);
printf("交换后的数组:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
方法四:使用标准库函数
```c
include include int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr); printf("原始数组:"); for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } printf("\n"); for (int i = 0; i < size / 2; i++) { swap(&arr[i], &arr[size - i - 1]); } printf("交换后的数组:"); for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; } ``` 这些方法都可以实现两个整数的交换顺序。你可以根据自己的需求和编程习惯选择合适的方法。