重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
普陀网站建设公司成都创新互联,普陀网站设计制作,有大型网站制作公司丰富经验。已为普陀上千提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的普陀做网站的公司定做!
#include time.h
#include stdlib.h
int rollDie(void)
{
return rand()%6+1;
}
void drawDic(int* pdic,int n)
{
int i,sum=0;
for(i=0;in;i++)
{
pdic[i]=rollDie();
}
for(i=0;in;i++)
{
printf("----");
}
printf("\n");
for(i=0;in;i++)
{
printf("|%d| ",pdic[i]);
sum+=pdic[i];
}
printf("\n");
for(i=0;in;i++)
{
printf("----");
}
printf("\nsum=%d\n",sum);
}
int main()
{
int dic[100];
int n=1;
int i;
printf("输入骰子数目:");
scanf("%d",n);
srand(time(0));
drawDic(dic,n);
return 0;
}
结果:
补充下楼上的
srand(time(NULL));
for(i=0;i6000;++i)
{
j=rand()%6+1;// 这个为1-6
++frequency[j-1];//统计频率,对应frequency[0]-frequency[5]
}
#include time.h
#include stdio.h
#include string.h
#define MIDDLE_FLAG 1
#define INITIAL_SCORE 1000
int bet()
{
int rollresult;
rollresult = rand()%6 + 1; //此处rand()为随机数,对6取余结果为0~5,需要+1修正为1~6
//printf("结果:%-4d",rollresult);
if (rollresult MIDDLE_FLAG)
return 1;
else
return 0;
}
int main()
{
int betscore,myscore = INITIAL_SCORE;
int resultflag, betflag, betresult;
char cinput[2], sresult[3];
printf("您的初始分数为%d\n",myscore);
srand((int)time(0)); //用时间创建随机数种子
while(1)
{
while(1)
{
puts("请压分:");
scanf("%d",betscore);
if(betscore myscore)
printf("您的剩余分数不够,为%d", myscore);
else
break;
}
fflush(stdin); //强制刷新缓冲区,防止上次输出影响
puts("请选择大小G为大L为小,X为退出:");
gets(cinput);
cinput[0] = cinput[0]%32+'A' - 1;
if(cinput[0] == 'X')
break;
else
betflag = (cinput[0] == 'G')?1:0;
//三目运算符“?”用法:x=(ab)?a:b;相当于if(ab)x=a;else x=b;
betresult = bet();
myscore = (betresult == betflag)?(myscore+2*betscore):(myscore-betscore);
strcpy(sresult, ((betresult!=0)?"大":"小"));
printf("结果为%s,您当前的分数为%d\n",sresult, myscore);
}
return 0;
}
1定义一个数组
int a[6]={0};
int i;
for(i=0;i1000000;i++)
a[rand()%6]++;
接着打印样式就自己写好了,我给你个差不多
for(i=0;i6;i++)
printf("%f",a[i]*1.0/1000000);
2
其实用一个while搞定
int n=123456,sum=0;
while(n)
{
sum=sum*10+n%10;
n/=10;
}
printf("%d',sum);
rand()%6+1是rand()函数,是Excel中产生随机数的一个随机函数,rand()%6+1的意思是编写C程序模拟的一个掷骰子游戏。
rand()%6+1具体分析为:由于每个人掷骰子所得到的点数都是随机的,因此你需要借助随机数发生器,每次产生一个1 到 6之间的整数,由此模拟玩家掷骰子的点数。
需要得到6个不同的随机数值,我们需要调用rand()函数,并取rand()函数除以6的余数就可以,就是rand()%6。但是这样得到的数是在0〜5之间的6个随机数,再将它加1,就是rand()%6+1,就可以得到1〜6之间的一个随机数。
为了计算在每盘中,甲、乙两人所掷的点数,需要定义两个int型变量d1、d2,用于记录每个人投掷点数的累加器。为了记录每个人的获胜盘数,需要再定义两个int型变量c1、c2,用于记录每个人获胜的盘数。
扩展资料:
rand()%6+1的完整的代码:
#include stdio.h
#include stdlib.h
#include time.h
int main()
{
int d1, d2, c1, c2, i, j;
c1 = c2 = 0; /*初始化*/
srand((unsigned)time(NULL));
rand(); /*初始化随机数产生器*/
for(i=1; i=100; i++)
{ /*模拟游戏过程*/
d1 = d2 = 0;
for(j=1; j=6; j++)
{ /*两个人轮流掷骰子*/
d1 = d1+rand()+1;
d2 = d2+rand()+1;
}
if(d1d2)
c1++; /*累加获胜盘数*/
else if(d1d2)
c2++;
}
if(c1c2) /*输出最终获胜者信息*/
printf("\nThe first win.\n");
else
if (c1c2)
printf("\nThe second win.\n");
else
printf("They tie.\n");
return 0;
}
运行结果:
The second win.
参考资料来源:
百度百科-rand()
这是C语言的题?
C语言不支持bool类型。。
我用C++编译器编译的
以下是代码
#include stdio.h
#include stdlib.h
#include time.h
int roll_dice(void);
bool play_game(void);
int main(){
char c = 'y';
int wintimes = 0,losetimes = 0;
while(c == 'y'){
if(play_game())
wintimes++;
else
losetimes++;
printf("\nPlay again? ");
scanf(" %c",c);
// printf("%c\n",c);
if(c=='Y') c='y';
}
printf("Wins: %d\tLosses: %d\n",wintimes,losetimes);
return 0;
}
int roll_dice(){
int ret=rand()%6+1;
ret+=rand()%6+1;
return ret;
}
bool play_game(){
int curRoundNumber = roll_dice();
int winNumber;
printf("You rolled: %d\n",curRoundNumber);
if(curRoundNumber == 7 || curRoundNumber == 11){
printf("You win!\n");
return true;
}
if(curRoundNumber == 2 || curRoundNumber == 3 || curRoundNumber == 12){
printf("You lose!\n");
return false;
}
winNumber = curRoundNumber;
printf("Your point is %d\n",winNumber);
while(1){
curRoundNumber = roll_dice();
printf("You rolled: %d\n",curRoundNumber);
if(curRoundNumber == winNumber){
printf("You win!\n");
return true;
}
if(curRoundNumber == 7){
printf("You lose!\n");
return false;
}
}
}