算法思想篇(8)————模拟算法

模拟算法是一种最基本的算法思想,是对程序员基本编程能力的一种考查,其解决方法就是根据题目给出的规则对题目要求的相关过程进行编程模拟。在解决模拟类问题时,需要注意字符串处理、特殊情况处理和对题目意思的理解。我们知道在C语言中,通常使用函数srand()和rand()来生成随机数。其中函数srand()用于初始化随机数发生器,然后使用函数rand()来生成随机数。如果要使用上述两个函数,则需要在源程序头部包含time.h文件。在程序设计过程中,可使用随机函数来模拟自然界中发生的不可预测情况。在解题时,需要仔细分析题目给出的规则,要尽可能地做到全面地考虑所有可能出现的情况,这是解模拟类问题的关键点之一。
下面通过一个简单的例子说明模拟算法的思想:
猜数字游戏:用计算机实现一个随机数1到100之间的数字,然后由用户来猜这个数,根据用户的猜测数量分别给出不同的提示
代码如下:

//start from the very beginning,and to create greatness
//@author: Chuangwei Lin
//@E-mail:979951191@qq.com
//@brief: 模拟猜数字游戏
 #include <time.h>
 #include <stdio.h>
int main()
{
   int n,m,i=0;
   int max=100,min=1;//用于比较数字范围
   srand(time(NULL));//初始化随机数发生器
   n=rand() % 100 + 1;//产生1到100的随机数
   do{
       printf("%d<目标数<%d哦!输入你猜的数字:",min,max);
       scanf("%d",&m);
       i++;//统计猜数字的次数
       if (m>n)
       {
           printf("您所猜的数字太大了!\n");
           max = m;//刷新最大值
       }
       else if(m<n)
       {
           printf("您所猜的数字太小了!\n");
           min = m;//刷新最小值
       }
   }while(m!=n);
    printf("回答正确!\n");
    printf("共猜测了%d次。\n",i);
    if(i<=5)
        printf("你太聪明了,这么快就猜出来了!\n");
    else if(i>5)
        printf("还需改进方法,以便更快猜出来!呵呵\n");
    return 0;
}

运行结果:
这里写图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值