我的书中有以下问题:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
clrscr();
randomize();
int Game[]={10,16},P;
int Turn=random(2)+5;
for(int T=0;T<20;T++)
{
P=random(2);
cout<<Game[P]+Turn<<"#";
}
getch();
}
输出像 16#22#16#16#16#22#....20 次......为什么这个输出总是 16# 或 22#?为什么不是 15# 或 21#?? 我想知道这个程序的机制。谢谢。转=随机(2)+5;如果 random(2) 给出 0 则 turn 变为 turn=0+5=5 这意味着我应该得到 10+5=15 和 16+5=21 以及 16 和 22 但我没有得到它们。
我们在计算机科学理论考试中得到了上述问题,我们要选择正确的答案(即它生成 16 和 22),但我怎么知道它只会生成 16 和 22。正如我在上面解释的 15 和21也是可以的。。