📄 dinner.cpp
字号:
#include"stdio.h"
#include"string.h"
#include"math.h"
#include"stdlib.h"
#include"time.h"
char *phi[]={"思考","思考","思考","思考","思考"};
char *cho[]={"F","F","F","F","F"};
int e[]={4,4,4,4,4};
char *lun(char *b,int i){
if(strcmp(b,"吃饭")==0){
b="思考";
return b;
}
else if(strcmp(b,"思考")==0){
b="饥饿";
return b;
}
else if(strcmp(b,"饥饿")==0){
e[i]-=1;
b="饥饿";
return b;
}
}
int second(int c){
int d;//前一个筷子的随机数
int l;//当前筷子
int f;//前一个筷子
int j;//判断请求状态
int i;//判断吃状态
int k;
int h=6;//等待时间
d=c-1;
l=c % 5;
f=d % 5;
cho[l]="T";
cho[f]="T";
for (j=c;j<c+5;j++){
if (strcmp(cho[j % 5],"F")==0 && strcmp(cho[(j-1) % 5],"F")==0 && strcmp(phi[j % 5],"饥饿")==0)
phi[j % 5]="wanting";
}
for (i=0;i<5;i++){
if(strcmp(phi[i],"wanting")==0 && e[i]<h){
h=e[i];
k=i;
}
}
return k;
}
main(){
int i;
int j;
int d;
int n;
for (n=0;n<10;n++){
for (i=0;i<5;i++){
if(strcmp(phi[i],"wanting")==0)
phi[i]="饥饿";
}
for (i=0;i<5;i++){
printf(" %s",phi[i]);
phi[i]=lun(phi[i],i);
}
printf("\n");
starting:
srand((unsigned)time(0));
j=rand()% 10;
d=j % 5;
if (strcmp(phi[d],"饥饿")==0){
phi[d]="吃饭";
e[d]=5;//等待时间
}
else
goto starting;
phi[second(j)]="吃饭";
for (i=0;i<5;i++)
cho[i]="F";
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -