用c语言随机生成20以内的整数,存入一个4行5列的二维数组中并输出,计算出所以元素的和并输出
时间: 2025-01-03 21:44:39 浏览: 4
在 C 语言中,我们可以使用 `srand` 和 `rand` 函数来自动生成随机数,并使用二维数组来存储数据。以下是完成这个任务的一个示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h> // 引入时间库以便初始化随机种子
#define ROWS 4
#define COLS 5
#define MAX_VALUE 20
// 定义一个用于存放随机数的结构体
typedef struct {
int row;
int col;
int value;
} RandomNumber;
int main() {
int arr[ROWS][COLS]; // 二维数组
RandomNumber numbers[ROWS * COLS]; // 存储随机数结构体数组
int sum = 0; // 初始化元素总和为0
srand(time(0)); // 设置随机数种子,保证每次程序运行得到不同的随机序列
for (int i = 0; i < ROWS * COLS; i++) {
numbers[i].row = i / COLS;
numbers[i].col = i % COLS;
numbers[i].value = rand() % MAX_VALUE + 1; // 随机生成1到20的整数
arr[numbers[i].row][numbers[i].col] = numbers[i].value;
sum += numbers[i].value;
}
printf("生成的随机数矩阵:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
printf("\n所有元素的和: %d\n", sum);
return 0;
}
```
在这个程序里,我们首先定义了二维数组 `arr` 和 `RandomNumber` 结构体数组。然后通过 `for` 循环遍历整个数组,生成每个元素的随机值并存储在对应的结构体中。接着将这些随机值放入二维数组 `arr` 中,并累加到总和变量 `sum`。
最后,我们打印出生成的随机数矩阵以及所有元素的总和。
阅读全文