资源简介
理发店里有一位理发师,一把理发椅和N把供等候理发的顾客坐的椅子
如果没有顾客,则理发师便在理发椅上睡觉。当一个顾客到来时,他必须先唤醒理发师。如果顾客到来时理发师正在理发,则如果有空椅子,可坐下来等;否则离开。
代码片段和文件信息
#include
#include
#include
#define random (rand()*10000)/RAND_MAX //用来产生随机数
int main()
{
int chairs=10; //普通椅子数
int customers=0; //顾客数
int count=0; //循环中用来计量的
int waiting=0; //等候理发的人数
int finish=0; //已经理完发的人数
int work=0; //理发师是否在工作
int sleeping=0; //理发师是否在打瞌睡
char opendoor; //理发店是否开门接待顾客
char blank; //获取空白字符
blank=getchar(); //这句话不太理解
printf(“要开门接待顾客吗?y/n\n“);
opendoor=getchar();
printf(“理发店内总共有%d把普通椅子。\n“chairs);
while(opendoor!=‘y‘)
{
printf(“对不起,尚未营业!\n“);
blank=getchar();
printf(“要开门接待顾客吗?y/n\n“);
opendoor=getchar();
}
printf(“开门迎接客人!\n“); //开门接待顾客
if(random%2) //刚开门时随机产生顾客,分有顾客和没顾客两种情况若为真,则有顾客
{
printf(“刚开门就有顾客到来。\n“);
customers++; //顾客数加1
printf(“理发师为第%d个顾客理发。\n“customers);
work=1; //进入工作状态
Loop:for(count=0;random%3&&count<=5;count++) /*理发师为一个顾客理发的期间随机产生顾客,分有顾客和没顾客两种情况若为真则有顾客且最多为来了五个*/
{
customers++;
printf(“第%d个顾客到来了。\n“customers);
sleeping=0; //设定理发师不在打瞌睡状态
if(work==1) //判断是否正为顾客理发,是则新来顾客等待,否则不用等待
{
if(waiting {
printf(“有%d把空椅子,顾客坐下等待。\n“chairs-waiting);
waiting++;
}
else
printf(“没有空椅子,顾客离开。\n“);
}
else
{
printf(“理发
相关资源
- 北京化工大学计算方法(C/C++)讲义
- GBT 28169-2011 嵌入式软件 C语言编码规范
- XUnZip Zip解压缩.rar
- Windows_API_函数大全 C/C++
- C语言程序设计教材习题参考答案.do
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- 高效FFT的C/C++代码实现包括基2的DIF和
- c/c++开发网络验证和本地验证
- 操作系统存储管理实验报告c/c++
- C++编写的万年历源码
- C语言进阶源码---基于graphics实现图书
- 井字棋三连棋的AI实现,C/C++
- 《水果忍者》设计报告.doc
- MFC实现的红绿灯程序
- Win32简易画图程序
- C++网络爬虫项目
- 泡泡堂(炸弹人)小游戏C/C++完整源码
- 使用C/C++读取BITMAP的内容
- VC图像处理-用Canny算子提取边缘
- C/C++视频教程
- 个人总结的一些C/C++编码规范
- 高斯消去法求解线性方程组C/C++程序输
- celrityC/C++源码查看工具
- 网络编程MFC 实验四 FTP客户端功能实现
- C/C++语言大作业、小游戏
- 完整的C/C++时序的B+树数据库系统实现
- Eclipse C/C++ 自动补全的cdt补丁
- MongoDB C/C++开发使用案例Demo
- C/C++使用WinIO读取CMOS数据代码
- Diab C/C++ Compiler for PowerPC
评论
共有 条评论