早教吧作业答案频道 -->其他-->
请看问题补充编写一个模拟两个人投掷骰子,比大小的的程序.具体要求如下: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"
编写一个模拟两个人投掷骰子,比大小的的程序.
具体要求如下:
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 "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 "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);
}
第一个程序:
#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 "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 …