C语言设计一个4*4的二维数组,数组初始值全为0,然后给随机位置赋一个随机值(2 4 8),并且2的概率为50%,4和8的概率为25%,先获取下标(一次取随机值) 再往该位置赋值,且所赋的值也是一个随机值
时间: 2024-03-25 11:37:20 浏览: 67
1.构造一个4×4的随机二维数组(值要求1-100之间)并把数组输出,找出数组的最大值以及下标.exe
好的,以下是实现的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int arr[4][4] = {0}; // 初始化数组为0
srand((unsigned)time(NULL)); // 用系统时间初始化随机数种子
int x = rand() % 4; // 随机生成x坐标
int y = rand() % 4; // 随机生成y坐标
int val = 0;
int prob = rand() % 100; // 随机生成0~99的数,用于决定赋值为2、4、8之一
if (prob < 50) { // 50%的概率赋值为2
val = 2;
} else if (prob < 75) { // 25%的概率赋值为4
val = 4;
} else { // 25%的概率赋值为8
val = 8;
}
arr[x][y] = val; // 赋值为随机值
printf("随机位置为(%d, %d),赋值为%d\n", x, y, val);
return 0;
}
```
代码中使用了 `srand` 函数和 `rand` 函数来生成随机数,其中 `srand` 函数用系统时间作为种子,确保每次运行程序生成的随机数不同。变量 `x` 和 `y` 分别表示随机生成的行坐标和列坐标,变量 `val` 表示要赋值的随机数,根据题目要求,采用了概率分布的方式来决定赋值为2、4、8之一。最后,输出随机位置和赋值结果。
阅读全文