C语言实现银行模拟(离散化)

#include <stdio.h>#include <stdlib.h>#include <windows.h>#define MAX_WIN 20#define MAX_STAY 100typedef struct customer *link;struct customer{int stay;link next;};link GUY(int stay, link next){link c = malloc(sizeof *c);c->stay = stay;c->next = next;return c;}link win[MAX_WIN];void morning(){int i;for(i = 0; i < MAX_WIN; i++){win[i] = NULL;}}void come(int w, int stay){if(win[w] == NULL){win[w] = GUY(stay, NULL);win[w]->next = win[w];}elsewin[w] = win[w]->next = GUY(stay, win[w]->next);}void leave(int w){if(win[w]->next == win[w]){free(win[w]);win[w] = NULL;}else{link t = win[w]->next;win[w]->next = t->next;free(t);}}void guys(){int i;link t;system("clear");for(i = 0; i < MAX_WIN; i++, puts(" ")){printf("WIN%3d:_", i);if((t = win[i]) == NULL)continue;for(; t->next != win[i]; t = t->next){printf("%4d", t->next->stay);}}Sleep(1);}void later(){int i;for(guys(), i = 0; i < MAX_WIN; i++){if(win[i] == NULL)continue;if(win[i]->next->stay > 0)(win[i]->next->stay)–;elseleave(i);}}int main(){srand(time(NULL));for(morning; ;later()){come(rand()%MAX_WIN, rand()%MAX_STAY+1);}return 0;}

由于这里是生成的随机数,所以程序会一直在变化。按住ctrl +c 终止程序

版权声明:本文为博主原创文章,,未经博主允许不得转载。

就微笑着同清风合力染绿大地,这样才算善待生命,不负年华。

C语言实现银行模拟(离散化)

相关文章:

你感兴趣的文章:

标签云: