掷骰子

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

㈠.rand()函数产生0到32767范围内的整数。

㈡.有且仅有5种规则立方体的所有面的外形和大小都相同(四、六、八、十二、二十面)。

㈢.算法:

⒈把随机数除以6(面数)取余数,余数在0到5间的整数;

⒉余数加一,得1到6的整数;

⒊因为骰子有不同的面数,因此把第一步的面数用变量sides代替。

㈣.源程序:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main(void)

{

int rollem(int);

int roll_n_dice(int,int);

int dice,roll,sides; /*骰数个数,总点数,一个骰子的面数*/

srand((unsigned int)time(0));

printf("输入骰子的面数(输入0退出):");

while(scanf("%d",&sides)==1&&sides>0)

{

printf("输入骰子的个数:");

scanf("%d",&dice);

roll=roll_n_dice(dice,sides);

printf("使用%d个%d面骰子掷%d点。",dice,sides,roll);

printf("\n输入骰子的面数(输入0退出):");

}

return 0;

}

int rollem(int sides)

{

int roll;

roll=rand()%sides+1;

return roll;

}

int roll_n_dice(int dice,int sides)

{

int d;

int total=0;

if(sides<2)

{

printf("至少两个面!!!\n");

return -2;

}

if(dice<1)

{

printf("至少一个骰子!!!\n");

return -1;

}

for(d=0;d<dice;d++) total+=rollem(sides);

return total;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航