2021-04-28

这是一个关于使用C语言解决大夫值班排列问题的程序。根据已知条件,通过循环和逻辑判断,确定每位大夫的值班日期,并按照指定格式输出结果。程序中,大夫的值班顺序与星期对应的关系是:E-MONDAY, B-TUESDAY, D-WEDNESDAY, F-THURSDAY, G-FRIDAY, C-SAURDAY, A-SUNDAY。
摘要由CSDN通过智能技术生成

🌟【C语言】## 指针数组
大夫值班问题:医院有A、B、C、D、E、F、G七位大夫,在一个星期内(星期一至星期天)
每天要轮流值班一天。现在已知:
A大夫比C大夫晚一天值班;
D大夫比E大夫晚两天值班;
B大夫比G大夫早三天值班;
F大夫的值班日在B和C大夫的中间,且是星期四;
请编程确定每天究竟哪位大夫值班?
**输出格式要求:“Doctor %c is on duty %s.\n”
程序运行示例如下:
Doctor E is on duty MONDAY.
Doctor B is on duty TUESDAY.
Doctor D is on duty WEDNESDAY.
Doctor F is on duty THURDAY.
Doctor G is on duty FRIDAY.
Doctor C is on duty STAURDAY.
Doctor A is on duty SUNDAY.

#include<stdio.h>
int a[8];
char *day[]={
    "","MONDAY","TUESDAY","WEDNESDAY","THURDAY",
       "FRIDAY","STAURDAY","SUNDAY"};
main()
{
    int i,t,j;
    a[4]=6;
    for(i=1;i<=3;i++)
    {
        a[i]=2;
        if(!a[i+3])
            a[i+3]=7;
        else
        {
            a[i]=0;
            continue;
        }
        for(t=1;t<=3;t++)
        {
            if(!a[t])
                a[t]=5;
            else
                continue;
            if(!a[t+2])
                a[t+2]=4;
            else
            {
                a[t]=0;
                continue;
            }
            for(j=5;j<7;j++)
            {
                if(!a[j])
                    a[j]=3;
                else
                    continue;
                if(!a[j+1])
                    a[j+1]=1;
                else
                {
                    a[j]=0;
                    continue;
                }
                for(i=1;i<=7;i++)
                    printf("Doctor %c is on duty %s.\n",'A'+a[i]-1,day[i]);
                exit(0);
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值