我想输出几个问题,但是以随机顺序排列。如何在不重复的情况下随机提出所有问题?
for(int i=0; i<4; i++)
{
int question=rand()%4;
switch(question)
{
case 0:
NSLog(@"What is your name");
break;
case 1:
NSLog(@"Who are you");
break;
case 2:
NSLog(@"What is your name");
break;
case 3:
NSLog(@"How do you do");
break;
case 4:
NSLog(@"Are you?");
break;
}
}
答案 0 :(得分:5)
将问题保存在一个数组中。在提问开始时随机播放阵列。现在每次迭代从列表中提取一个问题,询问,得到答案,然后继续问题。
答案 1 :(得分:4)
rand(3)
非常有名,因为实现较差的低位循环周期很短。尝试使用不同的位,或使用random(3)
代替。实际上,OS X上的rand(3)
man page表示:
这些界面已被
random(3)
淘汰。
此外 - % 4
永远不会超过3,因此您的case 4
将永远不会在此计划中执行。
答案 2 :(得分:1)
建议使用arc4random()
来获得更好的算法,而不需要播种。否则,请致电srand
以致电rand
。