资源简介
理发店里有一位理发师,一把理发椅和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(“理发
相关资源
- 基于RFID门禁系统源码 C/C++
- vs code C/C++语法高亮配置文件C/C++ The
- IDA Plugin Writing in C/C++
- C/C++实现linux和Windows查看系统、进程、
- Viterbi算法c/c++实现
- C/C++ STL参考手册 STL帮助文档 中文/英
- c/c++程序设计课后答案
- BDS/GPS导航定位C/C++从Txt文件读取和写
- C/C++经典约瑟夫环问题——带头结点的
- 运行c/c++程序时缺少mex.h
- vs2015编译MONGODB C/C++驱动
- modbus完整协议源码c/c++
- C/C++语言图像处理:各种滤波
- C/C++实训题目及答案
- c/c++常用算法手册随书代码
- 计算机图形学作业原创C/C++ VC++6.0,
- Windows C/C++ 集成开发环境
- Turbo C/C++ for Windows 集成实验环境免安
- 西北工业大学C/C++ noj答案100题
- SDL ttf 中文 C/C++ source code
- 浦发银行机试代码C语言.zip
- C/C++库函数参考手册中文版
- 12种游戏机模拟器源代码
- 计算机组成原理之运算器模拟C/C++实现
- 斗地主AI源代码
- 华为C/C++编码规范
- 高质量C/C++编程指南(PDF)
- 2017最全华为机试题C/C++含答案源码
- C/C++程序设计教程 第四版 课后答案
- SM2SM3SM4国密算法C语言实现VS2008
评论
共有 条评论