1. #include<stdio.h> 
  2. #include<time.h> 
  3. #include<stdlib.h> 
  4. #include"dice.h" 
  5.  
  6. int main(void){ 
  7.     int dice,sides;//设置骰子个数和面数  
  8.     int roll;//最终结果  
  9.      
  10.     srand((unsigned int)time(0));//设置一个伪随机数,当前时间当做种子  
  11.     printf("Enter the number of sides per die,0 to stop\n"); 
  12.     while((scanf("%d",&sides)==1 && sides > 0)) 
  13.     { 
  14.         puts("How many dice?"); 
  15.         scanf("%d",&dice); 
  16.         roll = roll_n_dice(dice,sides);//调用程序模拟掷骰子  
  17.         printf("You have rolled a %d using %d %d-sides dice\n",roll,dice,sides); 
  18.         printf("Enter the number of sides per die,0 to stop\n"); 
  19.     } 
  20.     printf("The rollem() function was called %d times.\n",roll_count);//打印投掷的总次数  
  21.     printf("GoodBye\n"); 
  22.      
  23.     getchar(); 
  24.     return 0; 
  25. }  

 

  1. #include "dice.h"//将头文件放置在双引号中,表明“在本地寻找”  
  2. #include<stdio.h> 
  3. #include<stdlib.h> 
  4.  
  5. int roll_count = 0;//定义一个外部链接静态变量,统计总的投掷数目  
  6. static int rollem(int sides){//将该函数设置为私有,只用于赋值roll_n_dice  
  7.     int roll; 
  8.       
  9.     roll = rand() % 6 + 1;//rand产生从1到RAND_MAX的整数,调整下得到想要的范围!  
  10.     ++roll_count; 
  11.     return roll; 
  12. int roll_n_dice(int dice,int sides){ 
  13.     int d; 
  14.     int total = 0; 
  15.      
  16.     if(sides<2){ 
  17.         printf("Need at least 2 sides\n"); 
  18.         return -2; 
  19.     } 
  20.     if(dice<1){ 
  21.         printf("Need at least 1 dice\n"); 
  22.         return -1; 
  23.     } 
  24.     for(d=0;d<dice;d++){ 
  25.         total += rollem(sides); 
  26.     } 
  27.     return total; 

 

  1. extern int roll_count;//设置一个全局变量  
  2. int roll_n_dice(int dice,int sides);//全局函数说明