早教吧作业答案频道 -->其他-->
请看问题补充编写一个模拟两个人投掷骰子,比大小的的程序.具体要求如下: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);
}
看了 请看问题补充编写一个模拟两个...的网友还看了以下:
1、已知k为常数,6x²-xy-2y²+ky-6能分解为两个一次因式的乘积,则k=?1、已知k为常数 2020-03-30 …
在括号里填上适当的数.20-5×()=20-6.5在括号里填上适当的数.20-5×()=20-6. 2020-05-22 …
本人是较笨的女生,答案和理由要能看懂,好者分双倍1.将-8、-6、-4、-2、0、2、4、6、8这 2020-06-02 …
高中数学必修三球平均数的例子:已知原来的平均数或方差,加上或乘上另一个数后再求怎么求?比如a1,a 2020-06-10 …
请选择恰当的字填空。(1)三顾(茅、矛)庐(2)(讴、呕)心沥血(3)天(伦、论)之乐(4)(诲、 2020-06-28 …
请选择恰当的字填空。(1)三顾(茅、矛)庐(2)(讴、呕)心沥血(3)天(伦、论)之乐(4)(诲、 2020-06-28 …
比-1小的整数如下面这样排列:(看下面)第一列:第二列:第三列:第四列:-2-3-4-5-9-8- 2020-07-25 …
在数+6.3,-2,-0.6,0,80,-,-,-中是正数的有,是分数的有。 2020-07-31 …
按下图程序计算,若开始输入的值为3,则输出的结果为n为奇数--2n+6是输入整数n<>(>100)- 2020-12-09 …
给下面每个算式填上同分母的分数使等式成立,且分母不大于30[[急需]]最后等于五分之一,6-6分之1 2020-12-17 …