用c语言求数组反序输出将数组a中n个整数按相反顺序存放,用指针变量作实参输入说明:n个整数输出说明:按相反顺序存放后输出
时间: 2024-06-14 12:04:26 浏览: 144
以下是用C语言实现将数组按相反顺序输出的代码:
```c
#include <stdio.h>
void reverseArray(int *arr, int n) {
int *start = arr;
int *end = arr + n - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
int n;
printf("请输入数组的长度:");
scanf("%d", &n);
int arr[n];
printf("请输入数组的元素:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
reverseArray(arr, n);
printf("按相反顺序存放后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
相关问题
使用c语言编写以下代码:用数组作函数参数,将数组中n个整数按相反顺序存放,要求输入输出在主函数中完成
当你想要使用C语言编写一个函数,该函数接受一个整数数组作为参数,并将其元素按照相反的顺序存储回去,你可以创建一个名为`reverse_array`的函数。下面是一个简单的示例:
```c
#include <stdio.h>
// 定义一个反序数组的函数
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--; // 移动结束位置
}
}
// 主函数用于输入和输出数组
int main() {
int n;
printf("请输入数组元素的数量: ");
scanf("%d", &n);
// 动态分配内存,因为不知道用户会输入多少个数
int* input_array = malloc(n * sizeof(int));
if (input_array == NULL) {
printf("内存分配失败!\n");
return 1;
}
printf("请输入%d个整数: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &input_array[i]);
}
// 反转数组
reverse_array(input_array, n);
// 输出反转后的数组
printf("反转后的数组: ");
for (int i = 0; i < n; i++) {
printf("%d ", input_array[i]);
}
printf("\n");
// 释放动态分配的内存
free(input_array);
return 0;
}
```
在这个程序中,我们首先读取用户输入的数组长度,然后分配内存保存输入的整数。接着,我们在`main`函数中调用`reverse_array`函数对数组进行反向操作,最后输出结果并释放内存。
C语言从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序并输出。自定义函数void antitone(int a[],int n)实现将数组中的n个数据按逆序存放。
下面是完整的程序代码:
```c
#include <stdio.h>
void antitone(int a[], int n) {
int i, temp;
for (i = 0; i < n / 2; i++) {
temp = a[i];
a[i] = a[n - i - 1];
a[n - i - 1] = temp;
}
}
int main() {
int a[100], n, i;
printf("请输入整数个数:");
scanf("%d", &n);
printf("请输入%d个整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("原数组为:\n");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
antitone(a, n);
printf("反序后的数组为:\n");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
运行结果:
```
请输入整数个数:5
请输入5个整数:1 2 3 4 5
原数组为:
1 2 3 4 5
反序后的数组为:
5 4 3 2 1
```
阅读全文