酷你琦琦 2021-07-05 09:08 采纳率: 100%
浏览 29
已采纳

这种日历程序怎么编写啊

img

  • 写回答

3条回答 默认 最新

  • CSDN专家-Fay 2021-07-05 09:18
    关注

    这个课设主要到C语言的一些日期函数,还有基本的循环,数组的用法等等

     
    int main(void)
    {
        int a, i, j, n, k, t, w, x, y, z;
        static int d[13][78];
        int m[14] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        char wst[] = " Sun Mon Yue Wed Thu Fri Sat   ";
        printf("请输入年份: ");
        scanf("%d", &y);
     
        if(y%4==0 && y%100!=0 || y%400==0)  /*闰年的二月为29天*/
            m[2] = 29;
        w = (y+(y-1)/4-(y-1)/100+(y-1)/400)%7; /*计算y年元旦为星期w*/
        for(i=1; i<=12; i++)
        {
            a = 1;
            for(j=1; j<=6; j++)
            {
                for(k=0; k<=6; k++)
                {
                    while(k<w) k=k+1;
                    d[i][j*10+k] = a;  /*计算i月的第j个星期的星期w的日期为a*/
                    a=a+1;
                    w = k+1;
                    if(w==7) w=0;
                    if(a>m[i]) break;
                }
                if(a>m[i]) break;
            }
        }
        printf("输入每行显示的月份数(1-6): ");
        scanf("%d", &x);
        for(k=1; k<=16*x-3; k++)
            printf(" ");
        printf("=====%d=====\n", y);   /*打印年号*/
        for(n=1; n<=12/x; n++)
        {
            t = x*(n-1)+1;
            printf("\n    ");
            for(z=1; z<=x; z++)
            {
                for(k=1; k<=15; k++)
                    printf(" ");
                printf("%2d", t+z-1);   /*打印月号*/
                for(k=1; k<=14; k++)
                    printf(" ");
            }
            printf("\n      ");
            for(z=1; z<=x; z++)      /*按一横排x个月格式打印*/
                printf("%s", wst);   /*打印星期标题*/
            for(j=1; j<=6; j++)
            {
                printf("\n  ");
                for(i=t; i<=t+x-1; i++)
                {
                    printf("   ");
                    for(k=0; k<=6; k++)
                        if(d[i][j*10+k]==0) /*空缺日期位置打印空格*/
                            printf("    ");
                        else
                            printf("%4d", d[i][j*10+k]);/*打印日期*/
                }
            }
        }
     
        return 0;
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测