鱼C论坛

 找回密码
 立即注册
查看: 2662|回复: 6

小甲鱼作业:计算今天是今年的第几天。。。

[复制链接]
发表于 2013-11-16 19:03:51 | 显示全部楼层 |阅读模式
5鱼币
#include <stdio.h>

void main()
{
int month, d, day, year, leap;
printf("please a date: \n");
scanf("%d %d %d",&year, &month, &d);
if ( year % 4 == 0 )
{
if ( year % 100 == 0 )
{
if ( year % 400 == 0 )
{
leap = 1;
}
else leap = 1;
}
}
else leap = 0;
if ( leap )
{
if ( month > 3 )
{
day = 31;
printf("This is %d year %d days\n", year,(month-1)*31+d);pause;
}
else if ( month = 2 )
{
day = 28;
printf("This is %d year %d days\n", year,31+d);pause;
}
}else 
switch (month)
{
case 1: printf("This is %d year %d days\n", year,d); break;
case 2: printf("This is %d year %d days\n", year,31+d); break;
case 3: printf("This is %d year %d days\n", year,61+d); break;
case 4: printf("This is %d year %d days\n", year,2*31+30+d); break;
case 5: printf("This is %d year %d days\n", year,2*(30+31)+d); break;
case 6: printf("This is %d year %d days\n", year,3*31+2*30+d); break;
case 7: printf("This is %d year %d days\n", year,3*(30+31)+d); break;
case 8: printf("This is %d year %d days\n", year,4*31+3*30+d); break;
case 9: printf("This is %d year %d days\n", year,5*31+3*30+d); break;
case 10: printf("This is %d year %d days\n", year,5*31+4*30+d); break;
case 11: printf("This is %d year %d days\n", year,6*31+4*30+d); break;
case 12: printf("This is %d year %d days\n", year,6*31+5*30+d); break;
default: printf("input error!!!!!\n");
}

}
这是我写的代码,我觉得代码量太多了,关于这个问题能有好的办法么??请大神帮忙。。。这是小甲鱼视频里的题目。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-16 19:03:52 | 显示全部楼层
#include<stdio.h> 
int main(void) { 
    int year,month,day,days,i,d; 
        printf("please a date: \n");        
        scanf("%d %d %d",&year, &month, &day);        
    days=0; 
    for(i=1;i<month;i++) { 
        switch(i) { 
                case 1: case 3: case 5: 
                case 7: case 8: case 10: 
                case 12:d=31;break; 
                case 4: case 6: case 9: 
                case 11:d=30;break; 
                case 2:d=((year%4==0&&year%100!=0||year%400==0)?29:28); 
        } 
        days+=d; 
    } 
    printf("%d年%d月%d日是这一年的第%d天。\n",year,month,day,days+day); 
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-11-16 21:49:29 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-11-16 22:07:10 | 显示全部楼层
18326638710 发表于 2013-11-16 21:49
哦,谢谢。学习了。。。^_^

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

使用道具 举报

发表于 2013-11-17 08:07:58 | 显示全部楼层
//求今天是今年的第几天
#include "stdio.h"
int main(void)
{
        int a[12]={31,28,31,30,31,30,31,31,30,31,30,31},i,yue,ri,sum=0;
        printf("请输入月份:");
        scanf("%d",&yue);
        printf("请输入日数:");
        scanf("%d",&ri);
        for(i=0;i<yue;i++)
                sum=sum+a;
        printf("今天是今年的第%d天",(sum+ri));
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-17 08:26:01 | 显示全部楼层
#include<stdio.h>
int main(void) {
    int year,month,day,days,i,d;
        printf("please a date: \n");        
        scanf("%d %d %d",&year, &month, &day);        
    days=0;
    for(i=1;i<=month;i++)   //mouth前面应该加个=
        {
        switch(i)
                {
                case 1:
                                case 3:
                                case 5:
                case 7:
                                case 8:
                                case 10:
                case 12:d=31;break;
                case 4:
                                case 6:
                                case 9:
                case 11:d=30;break;
                case 2:d=((year%4==0&&year%100!=0||year%400==0)?29:28);
        }
        days+=d;
    }
    printf("%d年%d月%d日是这一年的第%d天。\n",year,month,day,days+day);
return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-17 12:59:06 | 显示全部楼层
不错不错,学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 08:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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