永发信息网

C语言 随机生成有条件有范围的数值

答案:5  悬赏:70  手机版
解决时间 2021-12-20 20:41
  • 提问者网友:疯子也有疯子的情调
  • 2021-12-19 22:19
首先。。
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的整数且不相同???给代码
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 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");
}
全部回答
  • 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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯