结构体:枚举

cpp 复制代码
#include<iostream>  
using namespace std;
int main()
{
    enum weekday { mon, tus, wed, thu, fri, sat,sun }; //声明枚举类型 
    enum weekday day;  //定义枚举变量 
    int a, b, c, d, e, f, g, loop;  //定义整型变量 
    char ch = 'A';  //定义字符变量 
    f = thu;  //按照题意,F医生是星期四值班
    for (a = mon; a <= sun; a++)
        //需要逐个检查A医生星期几符合条件
    if (a != f)           
        //A医生值班日子不应该与F医生相同
    for (b = mon; b <= sun; b++)
        //逐个检查B医生星期几符合条件
    if (a != b)  
        //B医生值班日子不应该与A医生相同
    for (c = mon; c <= sun; c++)
        //逐个检查C医生星期几符合条件
    if ((c != a) && (c != b) && (c != f) && (a == (c + 1) % 7) && ((f > b) && (f < c) || (f > c) && (f < b)))
        //C医生值班日子不应该与A,B,F医生相同,且A比C晚1天 
    for (d = mon; d <= sun; d++)
        //逐个检查D医生星期几符合条件
    if ((d != a) && (d != b) && (d != c) && (d != f))  
        //D医生值班日子不应该与A,B,C,F医生相同
    for (e = mon; e <= sun; e++)
        //逐个检查E医生星期几符合条件
    if ((e != a) && (e != b) && (e != c) && (e != d) && (e != f) && (d == (e + 2) % 7)) 
        //E值班不应该与A,B,C,D,E,F相同,且D比E晚2天
    for (g = mon; g <= sun; g++)
        //逐个检查G医生条件
    if ((g != a) && (g != b) && (g != c) && (g != d) && (g != e) && (g != f) && (g == (b + 3) % 7))  
        //G值班不应该与A,B,C,D,E,F相同,且G与B后3天
    //符合以上条件才能执行以下工作 
    for (loop = 0; loop < 7; loop++)
    {
        cout << char(ch + loop) << "医生值班日:";
        switch (loop + 1)
        {
        case 1:day = weekday(a); break;
        case 2:day = weekday(b); break;
        case 3:day = weekday(c); break;
        case 4:day = weekday(d); break;
        case 5:day = weekday(e); break;
        case 6:day = weekday(f); break;
        case 7:day = weekday(g); break;
        }
        switch (day)
        {
        case mon:cout << "星期一" << endl; break;
        case tus:cout << "星期二" << endl; break;
        case wed:cout << "星期三" << endl; break;
        case thu:cout << "星期四" << endl; break;
        case fri:cout << "星期五" << endl; break;
        case sat:cout << "星期六" << endl; break;
        case sun:cout << "星期日" << endl; break;
        }
    }
    cout << endl;
    return 0;
}
相关推荐
大明者省6 小时前
WSL2 Ubuntu22.04 GPU训练环境配置指南
人工智能·算法·计算机视觉
WWJA王文举6 小时前
I²C通信完整流程详解:START、地址、ACK、数据、Repeated START和STOP一次讲透
c语言·开发语言
zhanghaha13147 小时前
Python进阶教程:6_JSON 数据解析 —— 新手完全指南
开发语言·python·json
白狐_7987 小时前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander2588 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
ShineWinsu8 小时前
对于C++:C++11中lambda、function、bind的解析
c++·面试·笔试·开发·lambda·bind·function
码匠许师傅8 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值
java·c++·面试
Shell运维手记8 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
qq_448011168 小时前
C语言中的动态内存分配
c语言·开发语言·php
杨航 AI8 小时前
O(n log n):线性对数原理拆解 这个是排序算法的黄金复杂度之一。
算法·排序算法