随机生成10个元素(小于100的整形数组并 输出,将数组按遊序重新存放后再次输出,存为1.c。 提示: 1. 随机数如何控制在100以内(任何数和100的余数都 小于100) 2.如何逆序存放(首尾交换,交换到什么位置)
时间: 2023-08-31 09:37:16 浏览: 149
### 回答1:
以下是实现随机生成10个元素的小于100的整形数组,并按逆序重新存放的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int nums[10];
int i, j, temp;
// 生成随机数种子
srand((unsigned)time(NULL));
// 随机生成10个小于100的整数并输出
printf("随机生成的数组:\n");
for (i = 0; i < 10; i++) {
nums[i] = rand() % 100;
printf("%d ", nums[i]);
}
// 将数组逆序存放并输出
for (i = 0, j = 9; i < j; i++, j--) {
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
printf("\n逆序存放后的数组:\n");
for (i = 0; i < 10; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
输出结果如下:
```
随机生成的数组:
5 48 25 91 4 87 74 71 97 6
逆序存放后的数组:
6 97 71 74 87 4 91 25 48 5
```
### 回答2:
首先,我们可以使用rand()函数来生成随机数。该函数的返回值是一个0到RAND_MAX之间的整数。我们可以利用取余运算将随机数控制在100以内。
接下来,我们使用循环来生成10个小于100的整数,并将它们存放在一个数组中。代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int arr[10];
int i;
srand(time(0));
for (i = 0; i < 10; i++) {
arr[i] = rand() % 100;
}
printf("随机生成的整数数组为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 将数组按逆序重新存放
for (i = 0; i < 5; i++) {
int temp = arr[i];
arr[i] = arr[9 - i];
arr[9 - i] = temp;
}
printf("逆序存放后的整数数组为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
以上代码中,我们使用srand()函数结合time(0)函数来设置随机数种子,保证每次运行程序都可以生成不同的随机数。
随后,我们利用rand() % 100将随机数限制在100以内,并将其存放在数组arr中。
接下来,我们使用两个循环分别输出原数组和逆序存放后的数组。在逆序存放的过程中,我们使用了首尾交换的方法,即将第一个元素和倒数第一个元素交换,第二个元素和倒数第二个元素交换,以此类推。
最后,我们运行程序,输出生成的随机数组和逆序存放后的数组。
阅读全文