⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dinner.cpp

📁 是数据结构的课程设计
💻 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 + -