早教吧 育儿知识 作业答案 考试题库 百科 知识分享

请看问题补充编写一个模拟两个人投掷骰子,比大小的的程序.具体要求如下:1)在VC++中建立一个工程;2)在程序开始的注释行中写上你自己的信息;3)生成1-6之间的一个随机数.为了

题目详情
请看问题补充
编写一个模拟两个人投掷骰子,比大小的的程序.
具体要求如下:
1) 在VC++中建立一个工程;
2) 在程序开始的注释行中写上你自己的信息;
3) 生成1-6之间的一个随机数.为了使随机数更随机,可以使用随机数初始化函数 srand()
模拟掷骰子的程序段参考如下:
printf("\n请掷骰子(按Enter键)");
getchar();
srand( (unsigned)time( NULL ) );
num1 = rand( ) % 6 + 1;
printf("\n您掷的骰子点数是 %d \n",num1);
为了使上面一段程序能够正常编译连接,在程序开始应该包含下面的头文件:
#include "stdlib.h"
#include "time.h"
4) 在程序编译正确后,要求在程序运行时提示您按 ENTER 键(模拟掷骰子).
在你按 ENTER 键后,生成第一个随机数,并进行显示;
之后提示你第二次掷骰子(按 ENTER 键),在你按ENTER 键后,生成第二个随机数,并进行显示.
可以利用 getchar() 函数等待按下 ENTER.注意在需要时使用函数 fflush(stdin) 清除键盘缓冲区.
5) 使用 if else 转移控制语句判断两次生成的随机数的大小,分别根据不同情况输出下面的语句之一:
"\nPlayer1 的点数大,Player1 胜出!\n"
"\nPlayer2 的点数大,Player2 胜出!\n"
"\nPlayer1 和 Player2 点数一样大,平局!\n"
编写一个有关概率统计实验的程序.
1) 编写一个掷 10000 次骰子的程序,分别统计在这10000 次的投掷中 1 点、2 点、3 点、4 点、5 点、6 点出现
的次数,计算出现的概率;
2) 统计在这 10000 次的投掷中,连续三次投掷,顺序出现 1、2、3 点的次数,计算出现的概率.
3) 掷骰子的模拟程序段可以参考本实验中的第 1 个程序;但要注意,随机数的初始化函数
srand( (unsigned)time( NULL ) );
只能在程序运行时(循环体外)执行 1 次,否则会产生错误的结果;
4) 需要定义 7 个整型变量,分别对投掷后出现的不同点数进行计数.其中,前面6 个变量分别存储出现1 点、2
点、3 点、4 点、5 点、6 点的次数,最后1 个变量存储顺序出现 1、2、3 点的次数;
5) 需要定义 7 个浮点变量,分别存储在不同情况下的概率;
6) 程序输出为:各个点数出现的次数、以及各个点数出现的概率;

注:生成1-6之间的一个随机数.为了使随机数更随机,可以使用随机数初始化函数 srand()
模拟掷骰子的程序段参考如下:
printf("\n请掷骰子(按Enter键)");
getchar();
srand( (unsigned)time( NULL ) );  //本语句在程序中只能运行一次(代码需在循环体外)
num1 = rand( ) % 6 + 1;
printf("\n您掷的骰子点数是 %d \n",num1);
为了使上面一段程序能够正常编译连接,在程序开始应该包含下面的头文件:
#include "stdlib.h"
#include "time.h"
▼优质解答
答案和解析

第一个程序:

#include "stdio.h"
#include "stdlib.h"
#include "time.h"

int main() {
    int num1, num2;
    srand((unsigned int )time(NULL));

    printf("\n请掷骰子(按Enter键)");
    getchar();
    num1 = rand( ) % 6 + 1;
    printf("\n您掷的骰子点数是 %d \n",num1);
    fflush(stdin);
    printf("\n请再掷一次骰子(按Enter键)");
    getchar();
    num2 = rand( ) % 6 + 1;
    printf("\n您掷的骰子点数是 %d \n",num2);

    if(num1 > num2) {
        printf("\nPlayer1 的点数大,Player1 胜出!\n");
    } else if(num1 == num2) {
        printf("\nPlayer1 和 Player2 点数一样大,平局!\n");
    } else {
        printf("\nPlayer2 的点数大,Player2 胜出!\n");
    }
}

第二个程序:

#include "stdio.h"
#include "stdlib.h"
#include "time.h"

int main() {
    // 分别表示1,2,3,4,5,6点数出现的次数 
    int one=0, two=0, three=0, four=0, five=0, six=0; 
    // 表示连续出现1,2,3的次数 
    int n = 0; 
    // 分别表示1,2,3,4,5,6点数出现的次数的概率 
    float one_f, two_f, three_f, four_f, five_f, six_f;
    
    int i, temp, j = 1;
    
    srand((unsigned int)time(NULL));

    for(i=0; i<10000; i++) {
        temp = rand() % 6 + 1;
        switch(temp) {
        case 1:
            one++;
            break;
        case 2:
            two++;
            break;
        case 3:
            three++;
            break;
        case 4:
            four++;
            break;
        case 5:
            five++;
            break;
        case 6:
            six++;
            break;

        }
        if(temp == j) {
            j++;
            if(j == 4) {
                n++;
                j = 1;
            }
        } else {
            j = 1;
        }
    }
    printf("1:%d\n2:%d\n3:%d\n4:%d\n5:%d\n6:%d\n", one, two, three, four, five, six);
    printf("连续出现 1, 2, 3的次数是:%d\n", n);
    one_f = one*1.0/10000;
    two_f = two*1.0/10000;
    three_f = three*1.0/10000;
    four_f = four*1.0/10000;
    five_f = five*1.0/10000;
    six_f = six*1.0/10000;
    printf("1出现的概率是%.3f\n2出现的概率是%.3f\n3出现的概率是%.3f\n4出现的概率是%.3f\n5出现的概率是%.3f\n6出现的概率是%.3f\n", 
    one_f, two_f, three_f, four_f, five_f, six_f);
}
看了 请看问题补充编写一个模拟两个...的网友还看了以下:

色子概率问题随意投掷一均匀色子2次2次出现的点数之和等于8的概率为多少?  2020-05-24 …

请教一道高数的问题许多药物进入人体后,其药量q随时间t按指数规律减少:q(t)=q0e^(-kt)  2020-06-12 …

古玩投资具有的特点是( )。A.交易成本高 B.流动性低 C.投资者要具备鉴别能力 D.较为  2020-06-27 …

已知一个N维矩阵,问怎么求它的逆矩阵?我想问一下具体方法...我就随便举一个例子吧13430230  2020-07-13 …

2013年4月国际金价的骤然大幅下跌,中国大妈疯狂抢金、被套的消息就相继抢占了各大媒体的主力版面,而  2020-11-08 …

有人说:“投资理财,不要把所有的鸡蛋放在同一个篮子里。”也有人说:“投资理财,不要把鸡蛋放在太多的篮  2020-11-21 …

有人说:“投资理财,不要把鸡蛋帮放在一个篮子里。”也有人说:“投资理财,不要把鸡蛋放在太多的篮子里。  2020-11-21 …

有人说:“投资理财,不要把所有的鸡蛋放在同一个篮子里。”也有人说:“投资理财,不要把鸡蛋放在太多的篮  2020-11-21 …

一次投篮比赛,投进0球的有一人,投进一球的有两人,投进两球的有7人,投进5球的有2人已知进三球或三球  2020-12-30 …

请知道高手回答我几个问题,随意一点回答就可以.具体看详细说明以下我发的几个链接,每一个都是一个知道问  2021-01-09 …