骰子确实是活跃酒桌气氛的一大神器,因为它的随机带来的不确定性让我们感到紧张和兴奋。所以我们今天来通过一个程序来重新体会一下掷骰子的乐趣。
程序要求
1、输入骰子的面数和个数
2、输出总点数
3、用户决定是否继续
4、退出后返回掷骰子的次数
解题思路
1、获取骰子的面数和个数,面数不能少2面,个数不能少于1个;
2、返回总点数给用户,需要写一个随机数函数,并且种子跟着时间修改,增强随机性
需要用到的新函数rand()、srand()、time()
rand():通过种子来生成一个指定范围内的随机数,rand() 在调用前会确定一下srand() 是否修改过种子
srand():用来修改随机种子的数值
time():返回一个机器的日历时间
scanf() 会返回接受数据的个数,可以通过这个来判断用户输入个数是否合法
CodeBlocks 编译
diceroll.h
#ifndef DICEROLL_H_INCLUDED
#define DICEROLL_H_INCLUDED
//表示roll_count 是外部变量
extern int roll_count;
int roll_n_dice(int dice, int sides);
#endif // DICEROLL_H_INCLUDED
diceroll.c
/** diceroll.c -- 掷骰子模拟程序 */
//与mandydice.c 一起编译
#include "diceroll.h"
#include <stdio.h>
#include <stdlib.h> //提供rand() 的原型
int roll_count = 0;
static int rollem(int sides){
//函数属于该文件私有
//sides 用来控制骰子的面数
int roll;
roll =<