怎么控制 C++生成随机数的范围
我用#include<time.h>srand((unsing)time(0))a=rand()%33这样可以控制随机数是在0-33范围内,可是我想让它在1-33范围内范...
我用#include<time.h>
srand((unsing)time(0))
a=rand()%33
这样可以控制随机数是在0-33范围内,可是我想让它在1-33范围内范围内,怎么办?
还有 a=rand()%33
b=rand()%33
怎么能让a和b产生的随机数不重复 展开
srand((unsing)time(0))
a=rand()%33
这样可以控制随机数是在0-33范围内,可是我想让它在1-33范围内范围内,怎么办?
还有 a=rand()%33
b=rand()%33
怎么能让a和b产生的随机数不重复 展开
7个回答
2019-05-02
展开全部
大概就是这样:
rand()%//注意没有范围
高级一点的:(注意有头文件time.h)
int a
{
srand((unsigned/*此处填随机种子,我选用时间*/)time(NULL));
rand()%x/*x处填范围*/;
}
代码运用:(注意还保存到文件里了)
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<iostream>
#define _CRT_SECURE_NO_WARNINGS
#include<math.h>
#include<string.h>
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<shu;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;
}
}
展开全部
a=ranf()%33+1
注意:你说“a=rand()%33
这样可以控制随机数是在0-33范围内”是错的,是0-32
让a和b产生的随机数不重复可以加条件判断
注意:你说“a=rand()%33
这样可以控制随机数是在0-33范围内”是错的,是0-32
让a和b产生的随机数不重复可以加条件判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a = rand()%33
a的范围是0~32
b = a+1;
b的范围是1~33
用if语句判断
如:
if(a == b)
continue;
a的范围是0~32
b = a+1;
b的范围是1~33
用if语句判断
如:
if(a == b)
continue;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=rand()%33+1;
do
{
a=rand()%33+1;
}while(b==a);
do
{
a=rand()%33+1;
}while(b==a);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=rand()%32+1
1,do
{
a=rand()%33+1;
}while(b==a);
2,if(a == b)
continue;
3,switch(a)
{case b;cintiu;
}
1,do
{
a=rand()%33+1;
}while(b==a);
2,if(a == b)
continue;
3,switch(a)
{case b;cintiu;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询