写的元胞自动机V型规则,但是一到条件7那里就出错,也就是从数组中随机取一个元素那里。我用的方法是让数组下标取随机,但是运行出来不对。求大佬解答。
假设你数组大小为10,那么随机数下标 n = rand()%10就可以了
你把代码贴一下,看看哪里写错了
假设数组大小是N
下标=rand()%N就可以随机取0~N-1了
随机取值的时候,要控制取值范围,不能超过数组的小标上限。
随机一个0到数组大小-1的整型,传到数组中做下标获取数据
#include <stdio.h>
#include <iostream>
#include <time.h>
using namespace std;
#define MAX 10
int main(int argc, char* argv[]) {
srand( (unsigned)time( NULL ) ); //srand()函数产生一个以当前时间开始的随机种子
int array[MAX] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 注意:参数的随机数一定要在数组的索引范围之内,否则会有越界的风险
int index = rand() % MAX; // 参数0 - 9的随机数
cout << array[index];
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632