注册 登录
编程论坛 C++教室

[求助]如何随机选择一种算法?

a8451727 发布于 2007-06-26 00:20, 788 次点击
问题很简单:
int a=rand()%100+1;
int b=rand()%100+1;

int num=a+b,num1=a-b;
cin>>num3;
if(num3==num)
cout<<"正确";

问:如何才能让num=a+b,num1=a-b;也随机出现呢?
也就是 随机出现加减法。
4 回复
#2
HJin2007-06-26 02:27

randomly geneerate 0 and 1 with 50-to-50 chance. if it is 0, do +; if it is 1, do -.

#3
wfpb2007-06-26 10:53

算法随机,你可以吧算法作为数组。
typedef int (*Comp)(int,int);
int Sum(int a,int b)
{
return a+b;
}
int Sub(int a,int b)
{
return a-b;
}


void main()
{
srand(time(0));
int a=rand()%100+1;
int b=rand()%100+1;
Comp c[]={Sum,Sub};
int num=rand()%(sizeof(c)/sizeof(int));
cin>>num3;
if(num3==num)
cout<<"正确";

}

[此贴子已经被作者于2007-6-26 10:54:15编辑过]

#4
aipb20072007-06-26 11:50
LZ的随机数没设种子啊,产生的是伪随机数哦。

像LS那样。
wfpb的方法很好,还有比较能理解的。

int oper = rand() % 2;
if (oper)
// +
else
// -
#5
a84517272007-06-26 12:02
谢谢了,呵呵
1