• 模拟算法


    在程序设计语言中,可以使用随机函数来模拟自然界中发生的不可预测的情况。C语言中使用srand()函数和rand()函数可以生成随机数。使用这两个函数需要包含time.h头文件。

    实例一,猜数字游戏。使用模拟算法编写一个猜数字游戏,由计算机随机生成一个1-100之内的整数,然后由用户来猜这个数,根据用户猜测的次数分别给出不同的提示文字。

    #include <time.h>
    #include <stdio.h>
    int main(void){
        int n, m, i = 0;//m是用户猜的数,n是电脑生成的数,i是猜的次数 
        srand(time(NULL));
        n = rand()%100+1;
        do{
            printf("请输入你猜的数字
    ");
            scanf("%d",&m);
            i++;
            if(m>n){
                printf("你猜的太大了
    ");
            }
            else if(m<n){
                printf("你猜的太小了
    ");
            }
        }
        while(m!=n);
        printf("猜对了,共猜了%d次
    ",i);
        if(i<=5){
            printf("你太聪明了,这么快就猜出来了");
        }
        else if(i>5){
            printf("哥们儿,猜的次数有点儿多呀");
        }
        getch();
        return 0;
    } 

    实例二,模拟掷骰子游戏。由用户输入骰子数量和参赛人数,然后由计算机随机生成每一粒骰子的数量,再累加起来就得到每一个选手的总点数。

    #include <stdio.h>
    #include <time.h>
    void play(int n){
        int i, m=0, t=0;//t是每一粒骰子的点数,m是一个选手的总点数,i是次数 
        for(i=0;i<n;i++){
            t = rand()%6+1;
            m+=t;
            printf("	第%d粒:%d;
    ",i+1,t);    
        }
        printf("	总点数为:%d
    ",m);
    }
    int main(void){
        int c;//参赛人数
        int n;//骰子数量
        int i,m;
        do{
            srand(time(NULL));
            printf("设置骰子的数量(输入0退出)"); 
            scanf("%d",&n);
            if(n==0) break;//至少得需要一个骰子 
            printf("
    输入本轮的参赛人数(输入0退出)"); 
            scanf("%d",&c);
            if(c==0) break;//至少得需要一个骰子 
            for(i=0; i<c; i++){
                printf("
    第%d位选手掷出的骰子为
    ",i+1); 
                play(n);
            }
            printf("
    ");
        } 
        while(1);
        return 0;
    }
  • 相关阅读:
    C# CodeFirst(EF框架)代码优先创建数据库
    Entity Framework 配置关系(1对1,1对0)
    Entity Framework 配置关系(1对1,1对0)
    EFDbContext的使用
    EFDbContext的使用
    编程模式·观察者模式、事件通知、消息队列三者区别
    编程模式·观察者模式、事件通知、消息队列三者区别
    设计模式发布订阅方式实现异步并发
    设计模式发布订阅方式实现异步并发
    关于访问asp.net网站时登录后的奇怪问题
  • 原文地址:https://www.cnblogs.com/zhaojianbin/p/5999867.html
Copyright © 2020-2023  润新知