龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

掷骰子

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
㈠.rand()函数产生0到32767范围内的整数。 ㈡.有且仅有5种规则立方体的所有面的外形和大小都相同(四、六、八、十二、二十面)。 ㈢.算法: ⒈把随机数除以6(面数)取余数,余数在

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

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

㈢.算法:

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

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

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

㈣.源程序:

  #include

  #include

  #include

  

  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("

输入骰子的面数(输入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("至少两个面!!!

");

   return -2;

   }

  if(dice<1)

   {

   printf("至少一个骰子!!!

");

   return -1;

   }

  for(d=0;d

  return total;

  }

  

精彩图集

赞助商链接