结构体:枚举

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;
}
相关推荐
民乐团扒谱机2 小时前
【超详细】PyQt6 实现 AU 风格波形图编辑器:多级缩放与采样点逐级渲染,附全过程代码
开发语言·python·编辑器·pyqt·audition·时域·频谱图
s_w.h2 小时前
【 linux 】线程互斥与同步
java·linux·服务器·开发语言
码匠许师傅2 小时前
【设计模式精讲】15.享元模式(Flyweight)
c++·设计模式·享元模式·uml
pingglala2 小时前
C++线程安全队列对比
开发语言·c++
刘孬孬沉迷学习2 小时前
AI音频领域完整调研:任务、算法、大模型研究全梳理
人工智能·算法·音视频
退休倒计时2 小时前
【每日五题】leetcode TypeScript
算法·leetcode·职场和发展·typescript
Demon--hx2 小时前
C++访问权限问题
开发语言·c++
机器学习之心2 小时前
基于BiGRU-Attention的轴承剩余寿命预测(MATLAB实现):从振动信号到RUL曲线的完整闭环
数据结构·算法·matlab·轴承剩余寿命预测·振动信号·bigru-attention
青梅橘子皮2 小时前
优选算法---专题2(滑动窗口)
数据结构·算法
乐观勇敢坚强的老彭2 小时前
c++信息学竞赛数组大小规划与避坑速查表
开发语言·c++