编写一个函数fun,功能是对一个一维数中存放的数进行逆序交换存放;在主函数中用随机函数产生20个[0~100)之间的整数,存放于一个一维数组中,并按原始存放顺序输出这20个数,然后调用fun函数使它们
时间: 2023-06-01 12:02:20 浏览: 166
### 回答1:
这道题让你编写一个函数fun,功能是对一个一维数中存放的数进行逆序交换存放;在主函数中用随机函数产生20个[0~100)之间的整数,存放于一个一维数组中,并按原始存放顺序输出20个数,然后调用fun函数使它们逆序存放,并输出这20个数。
### 回答2:
题目要求我们编写一个函数fun,实现对一个一维数组中存放的数进行逆序交换存放,那么我们首先需要明确逆序交换的概念。
逆序交换指的是将数组中的数按顺序排列后,再将第一个数和最后一个数交换位置,第二个数和倒数第二个数交换位置,以此类推,直到数组的中间位置为止。例如,对于数组{1,2,3,4,5,6}来说,经过逆序交换后,变为{6,5,4,3,2,1}。
接下来我们可以根据题目要求,编写一个使用循环的函数fun,代码如下:
```python
def fun(arr):
start = 0
end = len(arr) - 1
while start < end:
temp = arr[start]
arr[start] = arr[end]
arr[end] = temp
start += 1
end -= 1
```
在这个函数中,我们使用了一个while循环来不断交换数组的相邻元素,直到数组中心位置为止。具体实现方式是使用两个指针start和end,分别指向数组首尾两个元素,每次交换它们的位置,并让指针向中心移动一位,直到start指针和end指针相遇。
接下来我们可以在主函数中调用fun函数,对一个随机生成的20个[0~100)之间的整数的一维数组进行逆序交换。代码如下:
```python
import random
arr = [random.randint(0, 100) for i in range(20)]
print("原始数组:", arr)
fun(arr)
print("逆序交换后的数组:", arr)
```
在这段代码中,我们首先使用列表推导式随机生成一个20个[0~100)之间的整数的一维数组,然后分别输出原始数组和逆序交换后的数组。
综上所述,本题的解答方法是先编写一个使用循环的函数fun,实现对一个一维数组中存放的数进行逆序交换存放,然后在主函数中用随机函数产生20个[0~100)之间的整数,存放于一个一维数组中,并按原始存放顺序输出这20个数,最后调用fun函数对这个数组进行逆序交换,再次按照存放顺序输出这个数组。
### 回答3:
实现逆序交换存放,最后再次输出。
首先,我们可以先编写逆序交换函数fun,这个函数的参数是一个一维数组,函数的功能是将数组中存放的数进行逆序交换存放。我们可以使用指针来实现逆序交换,代码如下:
```c++
void fun(int *a, int n) {
int *p, *q, t;
p = a;
q = a + n - 1;
while (p < q) {
t = *p;
*p = *q;
*q = t;
++p;
--q;
}
}
```
接下来,我们在主函数中使用随机函数产生20个[0~100)之间的整数,将它们存放于一个一维数组中,并按原始存放顺序输出这20个数。然后调用fun函数对这个数组进行逆序交换,最后再次输出交换后的数组。完整代码如下:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void fun(int *a, int n) {
int *p, *q, t;
p = a;
q = a + n - 1;
while (p < q) {
t = *p;
*p = *q;
*q = t;
++p;
--q;
}
}
int main() {
srand((unsigned)time(NULL));
int a[20];
for (int i = 0; i < 20; ++i) {
a[i] = rand() % 100;
cout << a[i] << " ";
}
cout << endl;
fun(a, 20);
for (int i = 0; i < 20; ++i) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
这段代码中,我们使用了srand函数来初始化随机数生成器,这样可以保证每次运行程序产生的随机数序列都是不同的。接着,我们用for循环产生了20个[0~100)之间的整数,并将它们存放于一个一维数组a中。注意,我们在产生随机数时要使用取模运算符,将产生的随机数限制在[0~100)之间。然后,我们按照原始存放顺序输出这20个数,并调用fun函数将它们逆序交换。最后,我们再次输出交换后的数组,这样就完成了整个程序的编写。
阅读全文
相关推荐











