| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 523 人关注过本帖
标题:标准输入年月,打印要求的月天数,求改进!
只看楼主 加入收藏
lupeifeng123
Rank: 2
等 级:论坛游民
帖 子:74
专家分:47
注 册:2012-12-13
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:5 
标准输入年月,打印要求的月天数,求改进!
#include<stdio.h>
#define MONTHS 12
int run(int month);
int ping(int month);
int main(void){
int year,month;   
printf("input year and month:\n");
scanf("%d %d",&year,&month);   
if(year%4==0 && year%100!=0 || year%400==0)
run(month);   
else   
ping(month);
}
/*闰年*/
int run(int month){   
int days[MONTHS]={31,28,31,30,31,30,31,31,30,31,30,31};
int ndays;    ndays=days[month-1];
printf("Month %d has %2d days.\n",month,ndays);
return ;
}
/*平年*/
int ping(int month){
int days[MONTHS]={31,29,31,30,31,30,31,31,30,31,30,31};
int ndays;    ndays=days[month-1];
printf("Month %d has %2d days.\n",month,ndays);   
return ;
}
有很多都是重复的,怎么改进更效率点,
搜索更多相关主题的帖子: 打印 include return 
2013-02-04 15:00
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
程序代码:
int year_sumday(int year,int month,int day)
{
    int sum=0;
    int rui[12]={31,29,31,30,31,30,31,31,30,31,30,31};
    int ping[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int ruiflag=0;
    if((year%4==0 &&year%100!=0) || year%400==0) ruiflag=1;
    for(int index=0;index<month-1;index++)
    {
        if(ruiflag==1) sum+=rui[index];else sum+=ping[index];
    }
    sum+=day;
    return sum;
}
以前写的  可以参考一下

DO IT YOURSELF !
2013-02-04 15:06
tompobing
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:260
专家分:809
注 册:2012-12-9
收藏
得分:7 
路过
2013-02-05 03:40
lupeifeng123
Rank: 2
等 级:论坛游民
帖 子:74
专家分:47
注 册:2012-12-13
收藏
得分:0 
回复 2楼 wp231957
不好意思了 我求的是单个月份的天数,你那是之和啊

一步一个脚印,贵在坚持。
2013-02-05 08:58
核晴核理
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:129
专家分:169
注 册:2012-6-14
收藏
得分:7 
程序代码:
#include<stdio.h>
#define MONTHS 12
int date(int month);
int main(void)
{
  int year,month,days;   
  printf("input year and month:\n");
  scanf("%d %d",&year,&month);   
  days=date(month);
  if(year%4==0 && year%100!=0 && month==2 || year%400==0)
     printf("years %d month %d has %2d days",year,month,days+1); //如果是闰年,并且是2月份,天数+1
  else 
     printf("years %d month %d has %2d days",year,month,days); //否则按days数组的天数输出,因为只有闰年二月是个特例,单拿出来,其他月份可以一致
}
/*求月份天数*/
int date(int month)
{   
  int days[MONTHS]={31,28,31,30,31,30,31,31,30,31,30,31};
  int ndays;
  ndays=days[month-1];
  return ndays;
}


[ 本帖最后由 核晴核理 于 2013-2-5 09:57 编辑 ]
2013-02-05 09:49
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用lupeifeng123在2013-2-5 08:58:52的发言:

不好意思了 我求的是单个月份的天数,你那是之和啊
我是给你参考啊  求单个月份天数 不是比求和更容易一些吗

DO IT YOURSELF !
2013-02-05 10:53
快速回复:标准输入年月,打印要求的月天数,求改进!
数据加载中...
 
   



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

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