C++变量赋值

a=rand()%6;
c=rand()%6;

这两句代码是求 0到6的随机数,如何让产生的 a 不等于c的值,请指教啊,想了变天没想到好的办法

第1个回答  2009-10-11
首先先说一个错误一下,这两句代码是求0到5,不包括6.
如果想满足你的要求,可以这样
#include"stdio.h"
#include"time.h"
#include"stdlib.h"
void main()
{
int a,c,flag;
time_t t;
srand((unsigned)time(&t)); /*设置变量*/
a=rand()%6;
c=rand()%6;
for(flag=1;flag;)
if(a!=c)/*用选择语句淘汰a c相等的情况,从而筛选处符合要求的随即数*/
flag=0;
printf("a=%3d c=%3d",a,c);
printf("\n");
}
第2个回答  2009-10-11
楼主是指a,b不恒等于的方法还是永不相等的方法?
永不相等的方法参见BlueWanderer
不恒等于的方法见下
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
int i,a,b;
time_t t;
...
srand((unsigned) time(&t));//将rand()函数的产生条件与当前时间绑定,
//因此,只要时间不同,a和b产生规则就不会相同。
a=rand()%6;
b=rand()%6;
...
...
return 0;
}
第3个回答  2009-10-11
#include<iostream>
#include<time.h>
using namespace std;

int main()
{
srand(time(NULL));
int a = rand() % 6;
int b;
goon:
if ((b = rand() % 6) == a)
goto goon;
cout << a <<endl << b <<endl;
return 0;
}

a != b的值,可以试一试.
第4个回答  2009-10-11
a = 0 ;
b = 0 ;
while (a == b)
{
a = rand()%6;
b = rand()%6;
}

楼下BlueWanderer的回答比我的好多了~!佩服佩服!
第5个回答  2009-10-11
为什么没人说

a = rand() % 6;

do
{
b = rand() % 6;
}
while (a == b);

呢...本回答被网友采纳
相似回答