饼干470 2021-12-18 15:07 采纳率: 77.8%
浏览 16
已结题

为什么代码输出的日期出错


#include<stdio.h>
#include<stdlib.h>
int nian(int x)//判断闰年 ,x是年份 
{
    if(x%4==0&&x%100!=0)
    return(366);//闰年 
    else
    return(365);
}
int yue(int x,int y)//x是年份,y是月份 
{
    int a;
    if(x==366)
    {
        if(y==1) a=0;
        if(y==2) a=31;
        if(y==3) a=60;
        if(y==4) a=91;
        if(y==5) a=121;
        if(y==6) a=152;
        if(y==7) a=182;
        if(y==8) a=213;
        if(y==9) a=244;
        if(y==10) a=274;
        if(y==11) a=305;
        if(y==12) a=335;
    }
    if(x==365)
    {
        if(y==1) a=0;
        if(y==2) a=31;
        if(y==3) a=59;
        if(y==4) a=90;
        if(y==5) a=120;
        if(y==6) a=151;
        if(y==7) a=181;
        if(y==8) a=212;
        if(y==9) a=243;
        if(y==10) a=273;
        if(y==11) a=304;
        if(y==12) a=334;
    }
    return(a);
}
int tian(int z,int x,int y)//z是年份,x是月份,y是号 
{
    int a;
    x=yue(nian(z),x);
    a=x+y;
    return(a);
}
void xq(int x,int y,int z)//x是年份,y是月份 ,z是号 
{
    int i,d=0;//d是总天数 
    for(i=1;i<=x-1;i++)
    {
        d=d+nian(i);
    }
    d=d+tian(x,y,z);
    if(d%7==0) printf("星期天,");
    if(d%7==6) printf("星期六,");
    if(d%7==5) printf("星期五,");
    if(d%7==4) printf("星期四,");
    if(d%7==3) printf("星期三,");
    if(d%7==2) printf("星期二,");
    if(d%7==1) printf("星期一,");
}
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    xq(a,b,c);
    printf("这是%d年的第%d天",a,tian(a,b,c));
    return 0;
}

当a=2021,b=12,c=17,输出:星期五,这是2021年的第351天
为什么这串函数输出的是星期天

  • 写回答

1条回答 默认 最新

  • 智者知已应修善业 2021-12-18 18:50
    关注

    判断闰年不对,正确要加400年的条件((!(年 % 4) && 年 % 100) || !(年 % 400))

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 已采纳回答 12月18日
  • 创建了问题 12月18日

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?