大夫值班问题(指针)(数组)
2022年 03月 13 日

BIGFISH

大夫值班问题:医院有A、B、C、D、E、F、G七位大夫,在一个星期内(星期一至星期天)
每天要轮流值班一天。现在已知:
A大夫比C大夫晚一天值班;
D大夫比E大夫晚两天值班;
B大夫比G大夫早三天值班;
F大夫的值班日在B和C大夫的中间,且是星期四;
请编程确定每天究竟哪位大夫值班?
**输出格式要求:"Doctor %c is on duty %s.\n"

#include
#include
int a[8];
char* day[] = { "","MONDAY","TUESDAY","WEDNESDAY","THURDAYT",
"FRIDAY","STAUDAY","SUNDAY" }; /*建立星期表*/
int main()
{
	int i, j, t;
	a[4] = 6; /*星期四是F值班*/
	for (i = 1; i <= 3; i++)
	{
		a[i] = 2; /*假设B值班的日期*/
		if (!a[i + 3]) 
		{
			a[i + 3] = 7; /*若三天后无人值班则安排G值班*/
		}
		else
		{
			a[i] = 0; 
			continue;  /*否则B值班的日期不断对*/
		}
		//
		for (t = 1; t <= 3; t++) /*假设E值班的时间*/
		{
			if (!a[t])
			{
				a[t] = 5; /*若当天无人值班则安排E值班*/
			}
			else
			{
				continue;
			}
			//
			if (!a[t + 2])
			{
				a[t + 2] = 4; /*若E值班两天后无人值班则应为D*/
			}
			else
			{
				a[t] = 0; continue; /*否则E值班的日期不对*/
			}
			//
			for (j = 5; j < 7; j++)
			{
				if (!a[j])
				{
					a[j] = 3; /*若当天无人值班,则安排C值班*/
				}
				else
				{
					continue;
				}
				//
				if (!a[j + 1])
				{
					a[j + 1] = 1; /*C之后一天无人值班则应当是A值班*/
				}
				else
				{
					a[j] = 0; continue; /*否则A值班日期不对*/
				}
				//
				for (i = 1; i <= 7; i++) /*安排完毕,输出结果*/
				{
					printf("Doctor %c is on duty %s.\n", 'A' + a[i] - 1, day[i]);
				}
				exit(0);
			}
		}
	}
}

大夫值班问题(指针)(数组)

大夫值班问题:医院有A、B、C、D、E、F、G七位大夫,在一个星期内(星期一至星期天)
每天要轮流值班一天。现在已知:
A大夫比C大夫晚一天值班;
D大夫比E大夫晚两天值班;
B大夫比G大夫早三天值班;
F大夫的值班日在B和C大夫的中间,且是星期四;
请编程确定每天究竟哪位大夫值班?
**输出格式要求:"Doctor %c is on duty %s.\n"

#include
#include
int a[8];
char* day[] = { "","MONDAY","TUESDAY","WEDNESDAY","THURDAYT",
"FRIDAY","STAUDAY","SUNDAY" }; /*建立星期表*/
int main()
{
	int i, j, t;
	a[4] = 6; /*星期四是F值班*/
	for (i = 1; i <= 3; i++)
	{
		a[i] = 2; /*假设B值班的日期*/
		if (!a[i + 3]) 
		{
			a[i + 3] = 7; /*若三天后无人值班则安排G值班*/
		}
		else
		{
			a[i] = 0; 
			continue;  /*否则B值班的日期不断对*/
		}
		//
		for (t = 1; t <= 3; t++) /*假设E值班的时间*/
		{
			if (!a[t])
			{
				a[t] = 5; /*若当天无人值班则安排E值班*/
			}
			else
			{
				continue;
			}
			//
			if (!a[t + 2])
			{
				a[t + 2] = 4; /*若E值班两天后无人值班则应为D*/
			}
			else
			{
				a[t] = 0; continue; /*否则E值班的日期不对*/
			}
			//
			for (j = 5; j < 7; j++)
			{
				if (!a[j])
				{
					a[j] = 3; /*若当天无人值班,则安排C值班*/
				}
				else
				{
					continue;
				}
				//
				if (!a[j + 1])
				{
					a[j + 1] = 1; /*C之后一天无人值班则应当是A值班*/
				}
				else
				{
					a[j] = 0; continue; /*否则A值班日期不对*/
				}
				//
				for (i = 1; i <= 7; i++) /*安排完毕,输出结果*/
				{
					printf("Doctor %c is on duty %s.\n", 'A' + a[i] - 1, day[i]);
				}
				exit(0);
			}
		}
	}
}

赞 (0)

猜您想看

评论区(1条评论)

我要评论