编写函数,将n个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成: ① 输入10个数。 ② 调用此函数进行重排。 ③ 输出重排后的结果。
时间: 2024-03-06 22:49:22 浏览: 33
好的,下面是实现代码:
```c
#include <stdio.h>
void reverse(int *arr, int n) {
int i, j;
for (i = 0, j = n - 1; i < j; i++, j--) {
int temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
int main() {
int arr[10];
int i;
printf("请输入10个数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
reverse(arr, 10);
printf("逆序排列后的结果为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
函数 `void reverse(int *arr, int n)` 接收一个指向整型数组的指针 `arr` 和数组的长度 `n`,使用双指针遍历数组并将元素逆序交换。主函数中先输入 10 个数并存入数组中,然后调用 `reverse` 函数对数组进行逆序排列,最后输出结果。
相关问题
编写程序将8个数按输入时顺序的逆序排列,用函数实现。要求使用指针。
好的,这是一个技术问题,可以回答。以下是可以实现该功能的示范代码:
```c
#include <stdio.h>
void reverse(int *arr, int size) {
int *start = arr;
int *end = arr + size - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
int arr[8];
// 输入
printf("请输入 8 个数:\n");
for (int i = 0; i < 8; i++) {
scanf("%d", &arr[i]);
}
// 逆序
reverse(arr, 8);
// 输出
printf("逆序排列后的数为:\n");
for (int i = 0; i < 8; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在上述代码中,我们定义了一个 `reverse` 函数来实现逆序的功能,它接收一个整数类型的数组指针和数组大小,利用双指针来实现逆序排列。
在主函数中,我们首先读入 8 个数,然后调用 `reverse` 函数来逆序排列,最后输出结果。
写一个C语言,将n个数按输入时顺序的逆序排列,用函数实现。
要编写一个C语言程序,使用函数来逆序n个整数的顺序,你可以创建一个名为`reverse_array`的函数,该函数接受一个整数指针、数组长度以及指向数组的第一个元素的地址作为参数。这里是一个简单的实现方法:
```c
#include <stdio.h>
// 函数声明(原型)
void reverse_array(int* arr, int n);
// 主函数
int main() {
int n;
printf("请输入数字的数量(至少1个): ");
scanf("%d", &n);
// 验证输入是否为正整数
if (n <= 0) {
printf("输入错误,请输入一个正整数。\n");
return 1;
}
int arr[n]; // 创建一个足够大的数组
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; ++i) {
scanf("%d", &arr[i]);
}
// 反转数组
reverse_array(arr, n);
printf("逆序后的数组为:\n");
for (int i = 0; i < n; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
// 逆序数组函数
void reverse_array(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--;
}
}
```
在这个程序中,我们首先获取用户输入的整数数量n,然后创建一个相应大小的数组。接着调用`reverse_array`函数来逆序数组中的元素,最后打印出逆序后的数组。
阅读全文