鱼C论坛

 找回密码
 立即注册
查看: 2084|回复: 7

[已解决]新手求助

[复制链接]
发表于 2018-4-11 22:56:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
/*************************************************
**输入一个某年某月某日,输出为这一天为这一天的第几天**
*************************************************/



#include <stdio.h>

int main()
{
        int a ,b1 , b2 ,c ,leap ,sum;
        printf("please input year/month/day:    \n");     //输入年月份
        scanf("%d%d%d",&a,&b1,&c);
       
        if (a%4==0)                                       //判断是否为闰年
        {
                if (a%100==0)
                {
                        if(a%400==0)
                                leap=1;
                        else
                                leap=0;
                }
               
                else
                        leap=1;
        }
        else
                leap=0;
        if(leap)                                          //leap为判断闰年的标志
        {
                printf("%dis a leap year\n",a);
               
                switch(b1)                                     //闰年每个月天数的差别
                {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12: b2 = 31 ;break;
                case 2: b2 = 29 ;break;
                case 4:
                case 6:
                case 9:
                case 11: b2 = 30 ;break;
                }
        }
                else                                           //非闰年每个月份天数的差别
                {
                        printf("%dis not a leap year\n",a);
                        switch(b1)
                        {
                        case 1:
                        case 3:
                        case 5:
                        case 7:
                        case 8:
                        case 10:
                        case 12: b2 = 31 ;break;
                        case 2:  b2 = 28 ;break;
                case 4:
                        case 6:
                        case 9:
                        case 11: b2 = 30 ;break;
                                                                                                                                       
                        }
               
        }

         if (b1==1)                                    //计算天数
                sum = b2 + a;
         else if (b1==2)
                 sum = b2 + a + 31;
         else if (b1==3)
                 sum = b2 * 2 +  a;
         else if (b1==4)
                 sum = b2 + 31 * 2 + 30 + a;
         else if (b1==5)
                 sum = b2

                 printf("%d年%d月%d日为%d年的第%d天\n",a ,b1 ,c ,a ,sum);
       
        }

计算天数怎么计算
最佳答案
2018-4-12 10:11:38
  1. #pragma warning(disable : 4996)
  2. #include <stdio.h>
  3. #include <windows.h>
  4. #include <stdbool.h>

  5. int main(void) {

  6.         int year, month, day, sum = 0;
  7.         bool n = false;
  8.         int Year[] = { 31,29,31,30,31,30,31,31,30,31,30,31 };

  9.         printf("please input year/month/day: ");
  10.         scanf("%d %d %d", &year,&month, &day);

  11.         if ((year % 4 == 0) && (year % 100 != 0)) {
  12.                 n = true;
  13.         }

  14.         if (n) {
  15.                 Year[1] = 28;
  16.         }

  17.         for (int i = 0; i < month; i++) {
  18.                 sum += Year[i];
  19.         }

  20.         sum = sum - Year[month] + day;

  21.         printf("%d年 %d月 %d日 是%d年的第%d天\n", year,month,day,year,sum);

  22.         system("pause");

  23.         return 0;
  24. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-11 23:53:24 | 显示全部楼层
用数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-12 09:03:10 | 显示全部楼层
天数就是已经过去的月数里的天数总和加上当前月的天数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-12 09:14:00 | 显示全部楼层
你可以通过我这种方法得到想要的结果

#include <stdio.h>
#include <conio.h>

void main()
{
        int year, mouth, day, sum, leap;
        printf("请输入年 月 日:\n");
        scanf("%d %d %d", &year, &mouth, &day);
        switch(mouth)
        {
        case 1: sum = 0;break;
        case 2: sum = 31;break;
        case 3: sum = 59;break;
        case 4: sum = 90;break;
        case 5: sum = 120;break;
        case 6: sum = 151;break;
        case 7: sum = 181;break;
        case 8: sum = 212;break;
        case 9: sum = 243;break;
        case 10: sum = 273;break;
        case 11: sum = 304;break;
        case 12: sum = 334;break;
        }
        sum = sum + day;
        if(year%4==0 && year%100!=0 || year%400==0)
                leap=1;
        else
                leap=0;
        if(leap==1 && mouth > 2)
                sum=sum+1;

        printf("这一天是这一年的第%d天\n", sum);
        getch();
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-12 10:11:38 | 显示全部楼层    本楼为最佳答案   
  1. #pragma warning(disable : 4996)
  2. #include <stdio.h>
  3. #include <windows.h>
  4. #include <stdbool.h>

  5. int main(void) {

  6.         int year, month, day, sum = 0;
  7.         bool n = false;
  8.         int Year[] = { 31,29,31,30,31,30,31,31,30,31,30,31 };

  9.         printf("please input year/month/day: ");
  10.         scanf("%d %d %d", &year,&month, &day);

  11.         if ((year % 4 == 0) && (year % 100 != 0)) {
  12.                 n = true;
  13.         }

  14.         if (n) {
  15.                 Year[1] = 28;
  16.         }

  17.         for (int i = 0; i < month; i++) {
  18.                 sum += Year[i];
  19.         }

  20.         sum = sum - Year[month] + day;

  21.         printf("%d年 %d月 %d日 是%d年的第%d天\n", year,month,day,year,sum);

  22.         system("pause");

  23.         return 0;
  24. }
复制代码

QQ截图20180412101107.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-12 13:00:32 | 显示全部楼层

还没学  流泪(╥╯^╰╥)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-12 13:01:32 | 显示全部楼层
BngThea 发表于 2018-4-12 09:03
天数就是已经过去的月数里的天数总和加上当前月的天数

之前的月数怎嘛区分大还是小
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-12 13:21:55 | 显示全部楼层
549444387@qq.co 发表于 2018-4-12 09:14
你可以通过我这种方法得到想要的结果

#include

嗯嗯   谢谢  这个比较简单
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 22:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表