产生30个[-50,50]之间的随机整数,将它们输出(每行显示5个数),并求出其中正数、负数、0的个数,以及它们的平均值(平均值取2位小数)。
时间: 2023-12-14 20:38:13 浏览: 132
可以使用Python来实现这个任务,以下是代码示例:
```python
import random
# 产生随机整数
nums = [random.randint(-50, 50) for _ in range(30)]
# 输出随机整数
for i in range(0, 30, 5):
print(nums[i:i+5])
# 统计正数、负数、0的个数和平均值
positive = 0
negative = 0
zero = 0
sum_num = 0
for num in nums:
if num > 0:
positive += 1
elif num < 0:
negative += 1
else:
zero += 1
sum_num += num
average = round(sum_num / len(nums), 2)
# 输出结果
print("正数个数:", positive)
print("负数个数:", negative)
print("0的个数:", zero)
print("平均值:", average)
```
运行结果示例:
```
[26, 15, -31, -48, -4]
[-14, -31, -27, 2, 28]
[19, -50, 38, 32, 2]
[36, 42, 35, 20, 37]
[-21, -10, -47, -7, -9]
正数个数: 11
负数个数: 13
0的个数: 6
平均值: -0.8
```
相关问题
产生30个1-50,s01之间的随机整数,将它们输出(每行显示5个数),并求出其中正数、负数、口的个数,以及它们的平均值(平均值取2位小数)。
可以使用循环和随机数函数来实现这个问题,具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int nums[30]; // 存储随机数的数组
int i, pos = 0, neg = 0, zero = 0; // pos: 正数个数,neg: 负数个数,zero: 零的个数
float sum = 0.0, avg; // sum: 数字总和,avg: 平均值
srand(time(0)); // 初始化随机数种子
// 产生随机数并统计结果
for (i = 0; i < 30; i++) {
nums[i] = rand() % 51 - 25; // 产生-25到25之间的随机整数
if (nums[i] > 0)
pos++;
else if (nums[i] < 0)
neg++;
else
zero++;
sum += nums[i];
}
// 输出结果
printf("随机数如下:\n");
for (i = 0; i < 30; i++) {
printf("%3d ", nums[i]);
if ((i+1) % 5 == 0)
printf("\n");
}
printf("\n正数个数:%d,负数个数:%d,零的个数:%d\n", pos, neg, zero);
avg = sum / 30.0;
printf("平均值为:%.2f\n", avg);
return 0;
}
```
在上面的代码中,我们首先使用`srand()`函数初始化随机数种子,然后使用`rand()`函数产生30个-25到25之间的随机整数,并统计正数、负数、零的个数以及数字总和。最后输出随机数,正数、负数、零的个数,以及平均值。注意在输出随机数时,我们使用`(i+1) % 5 == 0`来判断是否需要换行。
产生30个[-50,50]之间的随机整数,将它们输出(每行显示5个数),并求出其中正数、负数、0的个数,以及它们的平均值(平均值取2位小数)。
和上一个问题类似,只需要将随机数的范围改为`[-50, 50]`即可,具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int nums[30]; // 存储随机数的数组
int i, pos = 0, neg = 0, zero = 0; // pos: 正数个数,neg: 负数个数,zero: 零的个数
float sum = 0.0, avg; // sum: 数字总和,avg: 平均值
srand(time(0)); // 初始化随机数种子
// 产生随机数并统计结果
for (i = 0; i < 30; i++) {
nums[i] = rand() % 101 - 50; // 产生-50到50之间的随机整数
if (nums[i] > 0)
pos++;
else if (nums[i] < 0)
neg++;
else
zero++;
sum += nums[i];
}
// 输出结果
printf("随机数如下:\n");
for (i = 0; i < 30; i++) {
printf("%3d ", nums[i]);
if ((i+1) % 5 == 0)
printf("\n");
}
printf("\n正数个数:%d,负数个数:%d,零的个数:%d\n", pos, neg, zero);
avg = sum / 30.0;
printf("平均值为:%.2f\n", avg);
return 0;
}
```
在上面的代码中,我们使用`rand() % 101 - 50`来产生-50到50之间的随机整数,并统计正数、负数、零的个数以及数字总和。最后输出随机数,正数、负数、零的个数,以及平均值。注意在输出随机数时,我们使用`(i+1) % 5 == 0`来判断是否需要换行。
阅读全文