关于#c语言#的问题:一道C语言程序设计题

一道C语言程序设计题,明天就要考试了,复习时突然碰见一个没碰过的题型,求解答。

img

根据已知条件,F为星期四是可以知道的,可以将星期一至星期日分别看成1-7,然后通过多重循环,先将A从1开始,B,C,D,E,F,G也都是这样,然后通过条件判定来得出医生的分别值班数值,注意该条件中每个医生的数值不能相等,即可算出。(还是大一新生,写的有点麻烦,不知道有没有更好的方法)

#include <stdio.h>

int main(void)
{
    int A=1,B=1,C=1,D=1,E=1,F=4,G=1;
    
    for(A=1;A<=7;A++){
        for(B=1;B<=7;B++){
            for(C=1;C<=7;C++){
                for(D=1;D<=7;D++){
                    for(E=1;E<=7;E++){            
                        for(G=1;G<=7;G++){                                                
                            if(A==C+1 && D==E+2 && B==G-3 && B+C==2*F && A!=B && A!=D && A!=E && A!=F && A!=G && B!=C && B!=D && B!=E && B!=F && C!=D && C!=E && C!=F && C!=G && D!=F && D!=G && E!=F && E!=G && F!=G){
                                printf("A在星期%d值班\nB在星期%d值班\nC在星期%d值班\nD在星期%d值班\nE在星期%d值班\nF在星期%d值班\nG在星期%d值班\n",A,B,C,D,E,F,G);
            
                            }
                        }
                    }
                }
            }
        }
    }
    
    
    return 0;
}

该回答引用ChatGPT

上述代码首先定义了一个包含所有医生名字的字符串数组 doctors,以及一个长度为 7 的字符串数组 duty,用于存储一周中每天的医生值班情况。

然后,根据已知条件确定了周一至周日每天的医生值班情况,并将其存储到 duty 数组中。最后,使用 for 循环遍历 duty 数组,输出每天的值班情况。

using System;

public class Program {
    public static void Main() {
        // 定义医生名字数组
        string[] doctors = { "A", "B", "C", "D", "E", "F", "G" };

        // 定义医生值班数组
        string[] duty = new string[7];

        // 根据已知条件确定医生值班情况
        duty[0] = "B";  // 周一
        duty[1] = "C";  // 周二
        duty[2] = "F";  // 周三
        duty[3] = "D";  // 周四
        duty[4] = "E";  // 周五
        duty[5] = "G";  // 周六
        duty[6] = "A";  // 周日

        // 输出每天的值班情况
        for (int i = 0; i < 7; i++) {
            Console.WriteLine("周{0}: {1}", i + 1, duty[i]);
        }
    }
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^