1 条题解

  • 0
    @ 2025-12-5 16:55:35

    C :

    #include <stdio.h>
    struct whichday
    { int year;
      int month;
      int date;
    }s[1];
    
    int main()
    {int i,mon[12]={31,0,31,30,31,30,31,31,30,31,30,31},day=0,day1=0;
     scanf("%d%d%d",&s[0].year,&s[0].month,&s[0].date);
     if(s[0].year%4==0&&s[0].year%100!=0||s[0].year%400==0)
    	 mon[1]=29;
     else 
    	mon[1]=28;
     
     for(i=0;i<s[0].month-1;i++)
    	 day1+=mon[i];
    
     day=day1+s[0].date;
     printf("%d",day);
    
     return 0;
    }
    

    C++ :

    #include<iostream>
    using namespace std;
    int main()
    {
        int n,y,r,k,pd,nn,yy,rr;
        while(cin>>n>>y>>r)
        {
            if(n%4!=0)
                pd=0;
            else if(pd%400==0)
                pd=1;
            else if(pd%100==0)
                pd=0;
            else 
                pd=1;
            k=0;nn=n;yy=1;rr=0;
            while(nn!=n||yy!=y||rr!=r)
            {
                k++;
                rr++;
                if(rr==32)
                {
                    yy++;
                    rr=1;
                }
                if(rr==31 &&(yy==4||yy==6||yy==9||yy==11))
                {
                    yy++;
                    rr=1;
                    }
                if(rr==30 && yy==2 && pd==1)
                {
                    yy++;
                    rr=1;
                    }
                if(rr==29 && yy==2 && pd==0)
                {    
                    yy++;
                    rr=1;
                }
            }
            cout<<k<<endl;
        }
    }
    
    

    Java :

    import java.util.Scanner;
    
    public class Main
    {
    	public static void main(String args[])
    	{
    		Scanner in=new Scanner(System.in);
    		int year=in.nextInt(),month=in.nextInt(),day=in.nextInt();
    		int daycount=0,yearnum;
    		int s[][]={{31,29,31,30,31,30,31,31,30,31,30,31},{31,28,31,30,31,30,31,31,30,31,30,31}};
    		if((year%400==0)||(year%100!=0&&year%4==0))yearnum=0;
    		else yearnum=1;
    		for(int i=0;i<month-1;i++)daycount+=s[yearnum][i];
    		daycount+=day;
    		System.out.println(daycount);
    	}
    }
    

    Python :

    a =map(lambda x:int(x), raw_input().split())
    
    y = a[0]
    m =a[1]
    d =a[2]
    l = [31,28,31,30,31,30,31,31,30,31,30,31]
    if (y %4 ==0 and y %100 !=0) or y%400 ==0:
        l[1]=29
    s=0
    for i in range(m-1):
        s +=l[i]
    print s +d
    
    • 1

    C语言程序设计教程(第三版)课后习题11.1

    信息

    ID
    2033
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者