| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 17280 人关注过本帖
标题:给出日期计算该日是该年的第几天?求大神路过。。。
只看楼主 加入收藏
zhb151017212
Rank: 1
等 级:新手上路
帖 子:41
专家分:6
注 册:2012-10-15
结帖率:73.33%
收藏
已结贴  问题点数:20 回复次数:10 
给出日期计算该日是该年的第几天?求大神路过。。。
#include<stdio.h>
int year,month,day,leap,sum=0;
int main()
{
    int leaper(int years);
    int summer(int date);
    printf("输入年 月 日:\n");
    scanf("%d%d%d",&year,&month,&day);
    int leaper(int years);
    int summer(int date);
    printf("该日是%d年的第%d天\n",year,sum);
    return 0;
}
int leaper(int years)
{
    if(year%4==0)
    {
        if(year%100==0)
        {
            if(year%400==0)
                leap=1;
            else
                leap=0;
        }
            else
                leap=1;
    }
        else
                leap=0;
        return(0);
}
int summer(int date)
{
    int leaper(int years);
    int sum=0;
    int b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    if(month=0)
        sum=day;
    else if(year=leap){
            for(month=1;month<12;month++)
            sum=sum+b[month-1]+day+1;
        }
        else
            sum=sum+b[month];
        return(sum);
}


搜索更多相关主题的帖子: include summer return 
2012-11-28 21:35
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
收藏
得分:5 
楼主在调用函数的时候写错了,另外在判断的时候应该用==而不是=,我改好的代码:
程序代码:
#include<stdio.h>
int year,month,day,leap,sum=0;
int main()
{
    int leaper(int years);
    int summer(int month,int day);
    printf("输入年 月 日:\n");
    scanf("%d%d%d",&year,&month,&day);
    leaper(year);
    printf("该日是%d年的第%d天\n",year,summer(month,day));
    return 0;
}
int leaper(int years)
{
    if(year%4==0)
    {
        if(year%100==0)
        {
            if(year%400==0)
                leap=1;
            else
                leap=0;
        }
            else
                leap=1;
    }
        else
                leap=0;
        return(0);
}
int summer(int month,int day)
{
    int leaper(int years);
    int i;
    int b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    if(month==1) sum=day;
    else if(0==leap){
            if (month==2) sum=day+31;
            else {for(i=1;i<month;i++) sum=sum+b[i-2]; sum=sum+day+1;}
                      }
         else  {for(i=1;i<month;i++) sum=sum+b[i-2]; sum=sum+day;}
   return sum;
}

2012-11-28 23:31
sosme
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-10-27
收藏
得分:0 
#include<stdio.h>
int year,month,day,leap,sum=0;
int main()
{
    int leaper(int years);
    int summer(int date);
    printf("输入年 月 日:\n");
    scanf("%d%d%d",&year,&month,&day);
    int leaper(int years);
    int summer(int date);
    printf("该日是%d年的第%d天\n",year,sum);
    return 0;
}

这段就已经错误了,我再调试的时候根本实现不了年月日的输入。。。。。。。。呵呵
2012-11-29 00:04
核晴核理
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:129
专家分:169
注 册:2012-6-14
收藏
得分:10 
程序代码:
#include<stdio.h>

 int year,month,day,leap=0,sum=0;           //1为闰年 0不是闰年
 int main()

 {
     int leaper(int years);
     int summer(int date);
     printf("输入年 月 日:\n");
     scanf("%d%d%d",&year,&month,&day);    
     leaper(year);                          //你的程序为什么出了一个date?
     printf("该日是%d年的第%d天\n",year,summer(day));
     return 0;

 }

 int leaper(int years)

 {
     if(year%4==0&&year%100!=0)             //你的闰年算法有错,上网查查
     {
         leap=1;
         return leap;
     }
     else if(year%400==0)
     {
         leap=1;
         return leap;
     }
     else return leap;

 }

 int summer(int date)

 {
     int leaper(int years);
     int sum=0,i;
     int b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
     if(month==1)                                 //这我从新写了一下 ,如果是第一个月,那么天数就是day
         sum=date;
     else {                                       //否则算sum,i<month,就是month上一个月,比有减法的看着清晰点
         for(i=1;i<month;++i)
             sum+=b[i];
         if(leap&&month>2)                        //如果是闰年,并且月份大于2的话,总天数加1
             sum+=1;
     }
     return sum+date;

 }


[ 本帖最后由 核晴核理 于 2012-11-29 08:46 编辑 ]
2012-11-29 08:36
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:5 
程序代码:
#include<stdio.h>

 struct
{
    int year;
    int month;
    int day;
}RiQi;

 int IsRun(int year)

 {
     if(year%400==0||year%100==0&&year%4!=0)
         return 1;
     else return 0;

 }

 int main()

 {
     int i,sum=0;
     int months[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};
     printf("please input the riqi!\n");
     scanf("%d%d%d",&RiQi.year,&RiQi.month,&RiQi.day);
     if(RiQi.month<=1&&RiQi.month>0)
     {
         sum+=RiQi.day;
         printf("是一年中的第 %d 天\n",sum);
     }
     if(!IsRun(RiQi.year))
     {
         months[2]=28;
         for(i=1;i<=RiQi.month-1;i++)
         {
                 sum=sum+months[i];
         }
         sum+=RiQi.day;
         printf("是一年中第 %d 天 \n",sum);
     }
     else
     {
         months[2]=29;
         for(i=1;i<=RiQi.month-1;i++)
         {
             sum+=months[i];
         }
         sum+=RiQi.day;
         printf("是一年中的第 %d 天 \n",sum);
     }
     return 0;

 }
看下我写的,你的闰年判断函数有点繁琐

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-29 10:10
zhb151017212
Rank: 1
等 级:新手上路
帖 子:41
专家分:6
注 册:2012-10-15
收藏
得分:0 
回复 4楼 核晴核理
我的闰年算法没错呀,能执行,主函数中printf输出有误。谢谢。
2012-11-30 20:02
zhb151017212
Rank: 1
等 级:新手上路
帖 子:41
专家分:6
注 册:2012-10-15
收藏
得分:0 
回复 3楼 sosme
能输出呀
2012-11-30 20:03
zhb151017212
Rank: 1
等 级:新手上路
帖 子:41
专家分:6
注 册:2012-10-15
收藏
得分:0 
回复 5楼 一个孩子
好吧 谢谢
2012-11-30 20:03
xtjopt
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:89
专家分:168
注 册:2012-9-12
收藏
得分:0 
学习了‘
2012-11-30 20:46
zhangsi1
Rank: 2
来 自:安徽芜湖
等 级:论坛游民
帖 子:38
专家分:87
注 册:2012-10-4
收藏
得分:0 
学习了
祝你好运
2012-11-30 20:56
快速回复:给出日期计算该日是该年的第几天?求大神路过。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052468 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved