首先。。
int limit = 5;
int shabi = 0;
shabi = rand()&limit
这个代码是让shabi等于1到4任意一个数是不?
如果我做出4个变量:
int lalala = 0;
int bababa = 0;
int bibibi = 0;
int shabi = 0;
怎样让这4个变量的值是随机生成的1至4的整数且不相同???给代码
C语言 随机生成有条件有范围的数值
答案:5 悬赏:70 手机版
解决时间 2021-12-20 20:41
- 提问者网友:疯子也有疯子的情调
- 2021-12-19 22:19
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2022-01-22 00:54
用数组来做,这个是别人的,他的范围是0-35,你修改下就是%4+1就好了。
#include
#include
void main()
{
int b[7];
int i, j, dup;
randomize();
for (i = 0; i < 7; ++i)
{
do
{
b[i] = rand() % 36;
dup = 0;
for (j = 0; j < i && !dup; ++j)
{
if (b[i] == b[j])
dup = 1;
}
}
while (dup);
}
for (i = 0; i < 7; ++i)
printf("%d ", b[i]);
printf("\n");
}
#include
#include
void main()
{
int b[7];
int i, j, dup;
randomize();
for (i = 0; i < 7; ++i)
{
do
{
b[i] = rand() % 36;
dup = 0;
for (j = 0; j < i && !dup; ++j)
{
if (b[i] == b[j])
dup = 1;
}
}
while (dup);
}
for (i = 0; i < 7; ++i)
printf("%d ", b[i]);
printf("\n");
}
全部回答
- 1楼网友:走死在岁月里
- 2022-01-22 04:17
#include
#include
...
srand( time(NULL) );//设置时间种子否则生成同一个数
for( i = 0; i < 10; i++ )
{
printf( "Random number #%d: %d\n", i, rand() );//放循环里否则生成同一个数
}
rand%x
得到 0 ~ x-1 之间的数
得到x ~ y之间的数
rand()%(y-x+1)+x
- 2楼网友:渊鱼
- 2022-01-22 03:46
rand()%3+1
rand()%3可生成0-3之间的数,然后再加1
- 3楼网友:爱难随人意
- 2022-01-22 02:32
#include
#include
#include
#define randomize() srand((unsigned)time(NULL))
void main()
{
int a,b,c,d;
randomize();
a=(rand()%4)+1;
b=(rand()%4)+1;
while(b==a)
{
b=(rand()%4)+1;
}
c=(rand()%5)+1;
while(c==a||c==b)
{
c=(rand()%4)+1;
}
d=(rand()%4)+1;
while(d==a||d==b||d==c)
{
d=(rand()%4)+1;
}
printf("%d%d%d%d",a,b,c,d);
}
- 4楼网友:有你哪都是故乡
- 2022-01-22 01:45
1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯