今日の質問を行います。フィットし、ネットワークを開始する(配列、ループ、関数)に

/ *

中国では、と言って「フィットを、ネットワークを起動し、」持っている、誰かが1990年1月1日から始まった「フィットとネットワークを開始します。」私は「釣り」、または、将来的には一日で男を尋ねた「乾燥ネット。」

* /


#include <stdio.h>
int panDuanRunNian ( int year);
int main(int argc, const char * argv[])
{
    printf("Enter year/month/day:");
    int year, b, c;
    scanf("%d%d%d",&year,&b,&c);
    int d = 0;
    int a = panDuanRunNian(year);
    int arr[2][12]=
    {{31,29,31,30,31,30,31,31,30,31,30,31},
        {31,28,31,30,31,30,31,31,30,31,30,31}};
    for (int i = 1900; i < year - 1900; i++) {
        if (panDuanRunNian(i)==1)    d+=366;
        else  d+=365;
    }
    for (int i = 1; i < b; i++) {
        if (a == 1)  d+=arr[0][i-1];
        else d+=arr[1][i-1];
    }
    if ((d+c)%5 == 0||(d+c)%5 == 4)   printf("He is sleeping.\n");
    else
        printf("He is fishing.\n");
    return 0;
}
int panDuanRunNian ( int year)
{
    return (year%400==0||(year%4==0&&year%100!=0));
}

ここでは、以前のソリューションである、忘れて何時間

#include <stdio.h>
int main()
{
    int y,m,d;//年月日年月日年月日
    scanf("%4d-%2d-%2d",&y,&m,&d);
    int arr[2][12] = {
        {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(y < 1990||m>12||d>31)
    {
        printf("Invalid input");
        return 0;
    }
    int days = 0;
    //year
   for(int i = 1990; i< y;i++){
    if((i%400 == 0) || ((i%4 == 0 )&&(i%100 != 0)) )//闰年366
    {
        days += 366;
    }
    else
    {
    days += 365;
    }
   }
   //month
   if(y%400 == 0 || ((y%4 == 0 )&&(y%100 == 0)) )
   for(int i = 0;i < m-1;i++) days+=arr[0][i];
   else
   for(int i = 0;i < m-1;i++) days+=arr[1][i];
   //day
   days += d;
   if(days % 5 <= 3 && days % 5 != 0 )
   printf("He is working");
   else
   printf("He is having a rest");
   return 0;
}

公開された18元の記事 ウォンの賞賛0 ビュー199

おすすめ

転載: blog.csdn.net/weixin_46456339/article/details/105282944