怎么控制 C++生成随机数的范围

2024-11-25 19:33:11
推荐回答(5个)
回答1:

大概就是这样:

rand()%//注意没有范围

高级一点的:(注意有头文件time.h)

int a
{
    srand((unsigned/*此处填随机种子,我选用时间*/)time(NULL));
    rand()%x/*x处填范围*/;
   大兆 }

代码运用:(注意还保存到文件里了)

#include
#include
#include
#include
#include
#define _CRT_SECURE_NO_WARNINGS
#include
#include
using namespace std;
int main()
{
int shu,xian;
int i;
int arr[100001];
MAIN:
printf("详细说明;此程序将绘制一个随机数表并保存至D盘一个位置,名称是随机数表。\n");
printf("输入随机数数量和上限(0`x)(用空格隔开):");
std::cin>>shu>>xian;
system("cls");
USING:
printf("打印?(1/2)\n");
char a=_getch();
if(a == '1')
{   system("cls");
   FILE* outFile=fopen("D:/随机数表+.txt","w");
   for(i=0;i   {
arr[i]=rand()%xian;
printf("%d_"滚携租);arr[i];
fprintf(outFile,"%d-",arr[i]);
   }
fclose(outFile);
return 0;
}
   if(a == '2')
   {   
   隐宽system("cls");
   printf("\n关闭");
return 0;
}
else 
   {
    system("cls");
    goto USING;
}
}

回答2:

a=ranf()%33+1
注意:你说“a=rand()%33
这样可陪戚以控制随机数是在0-33范围内”是错的,是贺乱春0-32
让a和b产生的随机数不重复禅耐可以加条件判断

回答3:

a = rand()%33
a的范围是0~32
b = a+1;
b的范围是1~33

用蔽兆if语句判断
如槐帆:宏明租
if(a == b)
continue;

回答4:

a=rand()%33+1;
do
{
a=rand()%33+1;
}while(b==a);

回答5:

a=rand()%32+1

1,do
{
a=rand()%33+1;
}while(b==a);
2,if(a == b)
continue;
3,switch(a)
{case b;cintiu;
}