编写一个c语言程序函数void fun(int a[],int n); ,要求对a指向的数组中n个元素逆序进行存放。
时间: 2024-03-11 10:49:02 浏览: 40
好的,下面是实现要求的函数void fun(int a[],int n)的代码:
```c
void fun(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;
}
}
```
这个函数的实现很简单,它使用了一个循环来遍历数组中的前一半元素,将第i个元素和第n-i-1个元素交换位置,从而实现了数组逆序存放的效果。
相关问题
c语言 编写一个函数void fun(int a[],int n); ,要求对a指向的数组中n个元素逆序进行存放。
好的,下面是 C 语言代码实现:
```c
#include <stdio.h>
void fun(int a[], int n) {
int i, j, temp;
for (i = 0, j = n-1; i < j; i++, j--) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
int main() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int i;
printf("原数组:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
fun(arr, 10);
printf("逆序后的数组:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
这个程序定义了一个函数 `fun`,它接受两个参数:一个整型数组和数组的长度。该函数会对传入的数组进行逆序存放操作。
在 `main` 函数中,我们定义了一个长度为10的数组,并输出原数组的值。然后调用 `fun` 函数对数组进行逆序存放操作,并再次输出逆序后的数组的值。
运行该程序,输出结果如下:
```
原数组:1 2 3 4 5 6 7 8 9 10
逆序后的数组:10 9 8 7 6 5 4 3 2 1
```
用c语言编写函数void fun(int arr[],int n)将一个数组中的值逆序存放,并在main中输出
以下是用C语言编写的实现代码:
```
#include <stdio.h>
void fun(int arr[], int n) {
int i, j, temp;
for (i = 0, j = n - 1; i < j; i++, j--) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Before reverse: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
fun(arr, n);
printf("\nAfter reverse: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:
```
Before reverse: 1 2 3 4 5
After reverse: 5 4 3 2 1
```
在 `main` 函数中,我们首先定义了一个整型数组 `arr` 并初始化。接着我们计算出数组的长度 `n`。然后我们调用 `fun` 函数将数组逆序存放。最后我们在 `main` 函数中输出逆序后的数组。
在 `fun` 函数中,我们使用了两个变量 `i` 和 `j` 分别指向数组的第一个元素和最后一个元素。我们使用一个循环,每次将 `arr[i]` 和 `arr[j]` 的值交换,然后将 `i` 增加1,将 `j` 减少1。当 `i` 大于等于 `j` 时,循环结束。这样就完成了数组的逆序存放。