c语言rand函数的使用
答案:5 悬赏:20
解决时间 2021-03-02 13:16
- 提问者网友:城市野鹿
- 2021-03-02 03:05
c语言rand函数的使用
最佳答案
- 二级知识专家网友:春色三分
- 2021-03-02 03:22
你把产生随机数的
srand((int)time(NULL));//srand作为rand的种子()内为系统时间;
computer = rand()%3+1;//随机产生1-3任意一个整数,rand()%3是随机产生0-2之间的整数(包含0但不包含3)
这2行丢进去
或者把下面那一行丢进while 确保每次种子不一样或者随机不一样
追问:抱歉,不是很懂。
能不能直接修改下我的代码,给我做个比较呢?谢谢。
追答:computer = rand()%3+1;//随机产生1-3任意一个整数,rand()%3是随机产生0-2之间的整数(包含0但不包含3)
把这句话移到while语句下面
追问:还是不懂,如果移到while下面的话,computer不就没有赋值了吗?
追答:在哪用在那赋值 rand();函数每次产生的数字都不一样 你只有一遍一遍的调用才能刷新数字
追问:那要怎么用呢?没财富了,只能再追问一次了,能帮我改下代码吗?万分感谢。
追答:#include//为了使用srand、rand函数必须使用该头文件
#include//要使用time()必须使用该头文件
#include
int main()
{
char in;
do{
int user;//定义玩家和电脑出拳
int uwin,ulos,allwin;//定义玩家的胜利参数,失败参数,平局参数
int cwin,clos,loop;//定义电脑的胜利参数和失败参数,不需要定义平局参数,可以直接取用allwin
int computer=0;
uwin=0;
ulos=0;
allwin=0;
cwin=0;
clos=0;
//出错,产生的随机数永远一样。
do{
srand((int)time(NULL));//srand作为rand的种子()内为系统时间;
computer = rand()%3+1;//随机产生1-3任意一个整数,rand()%3是随机产生0-2之间的整数(包含0但不包含3)printf("\n【第一局】\n 请出拳:");
scanf("%d",&user);
switch(user)
{
case 1:
if(computer==1)
{
printf("这一局,您出的是【石头】,电脑出的是【石头】,好巧哦,是平局耶!\n");
allwin+=1;
}
追问:不可以啊,还是和原来一样的效果。
追答:那吧strank函数也移过去
srand((int)time(NULL));//srand作为rand的种子()内为系统时间;
computer = rand()%3+1;//随机产生1-3任意一个整数,rand()%3是随机产生0-2之间的整数(包含0但不包含3)
这2行丢进去
或者把下面那一行丢进while 确保每次种子不一样或者随机不一样
追问:抱歉,不是很懂。
能不能直接修改下我的代码,给我做个比较呢?谢谢。
追答:computer = rand()%3+1;//随机产生1-3任意一个整数,rand()%3是随机产生0-2之间的整数(包含0但不包含3)
把这句话移到while语句下面
追问:还是不懂,如果移到while下面的话,computer不就没有赋值了吗?
追答:在哪用在那赋值 rand();函数每次产生的数字都不一样 你只有一遍一遍的调用才能刷新数字
追问:那要怎么用呢?没财富了,只能再追问一次了,能帮我改下代码吗?万分感谢。
追答:#include
#include
#include
int main()
{
char in;
do{
int user;//定义玩家和电脑出拳
int uwin,ulos,allwin;//定义玩家的胜利参数,失败参数,平局参数
int cwin,clos,loop;//定义电脑的胜利参数和失败参数,不需要定义平局参数,可以直接取用allwin
int computer=0;
uwin=0;
ulos=0;
allwin=0;
cwin=0;
clos=0;
//出错,产生的随机数永远一样。
do{
srand((int)time(NULL));//srand作为rand的种子()内为系统时间;
computer = rand()%3+1;//随机产生1-3任意一个整数,rand()%3是随机产生0-2之间的整数(包含0但不包含3)printf("\n【第一局】\n 请出拳:");
scanf("%d",&user);
switch(user)
{
case 1:
if(computer==1)
{
printf("这一局,您出的是【石头】,电脑出的是【石头】,好巧哦,是平局耶!\n");
allwin+=1;
}
追问:不可以啊,还是和原来一样的效果。
追答:那吧strank函数也移过去
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-03-02 07:48
你把srand函数移出do while循环外面试试!
- 2楼网友:举杯邀酒敬孤独
- 2021-03-02 06:53
#include<stdlib.h>//为了使用srand、rand函数必须使用该头文件
#include<time.h>//要使用time()必须使用该头文件
#include<stdio.h>
int main()
{
char in;
do
{
int user;//定义玩家和电脑出拳
int uwin,ulos,allwin;//定义玩家的胜利参数,失败参数,平局参数
int cwin,clos,loop;
//定义电脑的胜利参数和失败参数,不需要定义平局参数,可以直接取用allwin
int computer=0;
//出错,产生的随机数永远一样。
srand((int)time(NULL));//srand作为rand的种子()内为系统时间;
computer = rand()%3+1;
//随机产生1-3任意一个整数,rand()%3是随机产生0-2之间的整数(包含0但不包含3)
printf(" 【第一局】 请出拳:");
scanf("%d",&user);
switch(user)
{
case 1:
if(computer==1)
{
printf("这一局,您
出的是【石头】,电脑出的是【石头】,
好巧哦,是平局耶! ");
allwin+=1;
break;
}
}
}while(1);
}
不是每次都一样啊!程序的话,缩进一下应该更好看一些。缩进之后程序顺序一目了然
#include<time.h>//要使用time()必须使用该头文件
#include<stdio.h>
int main()
{
char in;
do
{
int user;//定义玩家和电脑出拳
int uwin,ulos,allwin;//定义玩家的胜利参数,失败参数,平局参数
int cwin,clos,loop;
//定义电脑的胜利参数和失败参数,不需要定义平局参数,可以直接取用allwin
int computer=0;
//出错,产生的随机数永远一样。
srand((int)time(NULL));//srand作为rand的种子()内为系统时间;
computer = rand()%3+1;
//随机产生1-3任意一个整数,rand()%3是随机产生0-2之间的整数(包含0但不包含3)
printf(" 【第一局】 请出拳:");
scanf("%d",&user);
switch(user)
{
case 1:
if(computer==1)
{
printf("这一局,您
出的是【石头】,电脑出的是【石头】,
好巧哦,是平局耶! ");
allwin+=1;
break;
}
}
}while(1);
}
不是每次都一样啊!程序的话,缩进一下应该更好看一些。缩进之后程序顺序一目了然
- 3楼网友:西岸风
- 2021-03-02 06:13
下面的代码每次运行结果一样吗?#include<stdlib.h>//为了使用srand、rand函数必须使用该头文件
#include<time.h>//要使用time()必须使用该头文件
#include<stdio.h>
int main()
{
int user;
srand((int)time(NULL));//srand作为rand的种子()内为系统时间;
for(user=0;user<100; user++){
printf("%d, ",rand()%3+1);
}
return 0;
}
追问:亲,直接帮我修改下代码吧,我做个比较就知道错在哪里了,拜谢。
- 4楼网友:人间朝暮
- 2021-03-02 04:56
我暂时保留我的看法!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯