将10个数逆序排序,借助指针实现。输入格式:在一行中,输入10个整数n (1<=n<=10000),用空格分隔数字。输出格式:输出为两行。第一行中输出传入的10个整数,以空格分隔数字。第二行中输出逆序后的10个整数,以空格分隔数字。 用c语言编写
时间: 2025-01-04 10:38:30 浏览: 35
在 C 语言中,你可以使用两个指针,一个指向数组的开始,另一个指向结束,然后交换它们所指向的元素,并依次向中间移动指针,直到两个指针相遇。以下是实现这个功能的一个简单示例:
```c
#include <stdio.h>
void reverse(int arr[], int n) {
int start = 0; // 指向数组开头的指针
int end = n - 1; // 指向数组结尾的指针
while (start < end) { // 当两个指针未相遇时
// 交换元素
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 移动指针
start++;
end--;
}
}
int main() {
int nums[10]; // 假设数组已初始化有10个整数
int n;
// 输入10个整数
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
// 输出原始数组
printf("原始数组: ");
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
printf("\n");
// 逆序数组
reverse(nums, n);
// 输出逆序后的数组
printf("逆序后的数组: ");
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,`reverse()` 函数负责倒序操作,`main()` 函数负责读取输入、调用函数以及打印结果。记得在实际应用中,你需要先检查输入是否合法(比如确保有10个整数),并处理可能出现的边界情况。
阅读全文