c语言 2个数随机1个数,如何产生一个随机数,在两个随机数之间。

如何让电脑较为快的,不重复的猜到1-100直接的一个随机数。

以c语言为例,例如在猜1-100的数字时,假如,随机产生一个数字number=rand()%100+1,那么如果随机猜的第一个数字大于了number,我们就把这个数存到end里面,如果随机猜的第二个数字小于了number,我们就把这个数字存到first里面,那么问题就是接下来产生的随机数要在介于first和end之间的一个随机数,则,用rand()%(end-first)+first可以得到这个随机数。

以下为示例代码:

#include

#include

#include

int func(int first,int end)

{

return rand()%(end-first) +first+1;

}

int main(void)

{

srand(time(NULL));

int num_1=rand()%100+1;

//int num_2;

int count=0;

int first=0;

int end=100;

printf("需要猜的数字为:%d\n",num_1);

while(1)

{

printf("请你猜一个数:\n");

int num_2=func(first,end);

printf("%d",num_2);

if(num_2>num_1)

{

printf("你输入的数大了!\n");

end=num_2;

count++;

}

else if(num_2

{

printf("你输入的数小了!\n");

first=num_2;

count++;

}

else

{

printf("恭喜你答对了哦!\n");break;

}

}

printf("你一共用了%d次哦",count);

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值