m0_73674542 2022-10-14 17:01 采纳率: 67.7%
浏览 69
已结题

PTA循环,从1900年以来的第星期

任务描述
X同学出生在“2002年01月07日”,已知1900年1月1日是星期一,你知道他出生的那天是星期几吗?随意给你一个日期,你知道是星期几吗?

输入格式:
输入为一行,由减号分隔的三个整数,形如:Y-M-D,表示一个日期。测试数据日期均为1900年以来的合法日期。

输出格式:
请输出该日期是星期几,星期一至星期日分别用1至7表示。

#include<stdio.h>
int main()
{
    int y,m,d,net,num,sum=0;
    scanf("%d-%d-%d",&y,&m,&d);
    net=(y-1900)/4;
    num=(y-1900)%4;
    if(sum>=1)
    sum=net*1460+(num-1)*365;
    else
    sum=net*1460;
    switch(m)
    {
            case 12:sum+=30;
            case 11:sum+=31;
            case 10:sum+=30;
            case 9:sum+=31;
            case 8:sum+=31;
            case 7:sum+=30;
            case 6:sum+=31;
            case 5:sum+=30;
            case 4:sum+=31;
            case 3:sum+=28;
            case 2:sum+=31;
            case 1:sum+=d;
    }
    sum=sum%7;
    if(sum==0)
        sum=7;
    printf("%d",sum);
}

  • 写回答

2条回答 默认 最新

  • 於黾 2022-10-14 17:07
    关注

    问题好多
    1.sum初始成0了,那么其实0代表星期一
    你的结果直接+1就对了,不要判断如果是0就改成7,那就错了
    要么你sum的初始值改成1
    2.你为什么只加365,闰年哪里去了
    3.你的if里的判断条件为什么是sum>=1,这里sum明显是0呀,恒为假
    先写伪代码,把逻辑捋清楚再写代码,你现在不是代码不会写,是根本没厘清思路

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

报告相同问题?

问题事件

  • 系统已结题 10月22日
  • 已采纳回答 10月14日
  • 创建了问题 10月14日

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探