| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 506 人关注过本帖
标题:问题来啦
只看楼主 加入收藏
吴冬
Rank: 2
来 自: 湖南岳阳
等 级:论坛游民
帖 子:33
专家分:55
注 册:2010-5-22
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:8 
问题来啦
在C语言中 从键盘输入一个日期(年月日),输出该日期是当年的第几日?
搜索更多相关主题的帖子: 键盘 年月日 C语言 
2010-05-24 21:59
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:3 
给你个傻傻的代码,哈哈……
#include<stdio.h>
int rn(int year)
{
 int a;
 if(year%100!=0)
 {
  if(year%4==0) a=1;
  else a=0;
 }
 else
 {
  if(year%400==0) a=1;
  else a=0;
 }
return(a);
}
void main()
{
 int year,month,day,yn,sum;
 printf("please input year\n");
 scanf("%d",&year);
 printf("please input month\n");
 scanf("%d",&month);
 printf("please input day\n");
 scanf("%d",&day);
 yn=rn(year);
 if(month==2&&day==29)
 {
  if(yn==0) {sum=0;goto error;}
 }
 if(month==1) sum=day;
 else if(month==2) sum=31+day;
 else if(month==3) sum=31+28+yn+day;
 else if(month==4) sum=31+28+yn+31+day;
 else if(month==5) sum=31+28+yn+31+30+day;
 else if(month==6) sum=31+28+yn+31+30+31+day;
 else if(month==7) sum=31+28+yn+31+30+31+30+day;
 else if(month==8) sum=31+28+yn+31+30+31+30+31+day;
 else if(month==9) sum=31+28+yn+31+30+31+30+31+31+day;
 else if(month==10) sum=31+28+yn+31+30+31+30+31+31+30+day;
 else if(month==11) sum=31+28+yn+31+30+31+30+31+31+30+31+day;
 else if(month==12) sum=31+28+yn+31+30+31+30+31+31+30+31+30+day;
 else sum=0;
 error:if(sum!=0) printf("the result is %d\n",sum);
       if(sum==0) printf("ERROR\n");
}
其实用switch要方便些……呵呵
在TC2.0上编译通过
我输入2010年5月24日,结果是144,很正确……

我很懒,但我讨厌别人说我懒……
2010-05-24 22:46
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
这个代码好像有点问题,我感觉,不过也没发现什么问题……汗……

我很懒,但我讨厌别人说我懒……
2010-05-24 22:48
IWAnt
Rank: 2
来 自:nefu
等 级:论坛游民
帖 子:18
专家分:25
注 册:2009-9-20
收藏
得分:1 
我觉得switch应该比else if快些吧,if else 如果输入2010-12-1的话还要从头判断条件,判断11次(ˇˍˇ)

我的双眼看湿了你的肩膀,你会用多久路过我的身旁
2010-05-24 22:55
小伊
Rank: 2
等 级:论坛游民
帖 子:27
专家分:33
注 册:2010-4-17
收藏
得分:3 
#include<stdio.h>
void main()
{
  int SumDay(int,int);
  int leap(int year);
  int year,month,day,days;
  scanf("%d%d%d",&year,&month,&day);
  printf("%d/%d/%d",year,month,day);
  days=SumDay(month,day);
  if(leap(year)&&month>=3)
        days=days+1;
  printf("is the %dth day in this year.\n",days);
}
  int SumDay(int month,int day)
  {
      int daytab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
      int i;
      for(i=1;i<month;i++)
            day+=daytab[i];
      return(day);
  }
   int leap(int year)
   {
     int leap;
     leap=year%4==0&&year%100!=0||year%400==0;
     return(leap);
   }
2010-05-24 23:34
以中
Rank: 3Rank: 3
来 自:长沙
等 级:论坛游侠
帖 子:108
专家分:129
注 册:2010-4-13
收藏
得分:3 
#include<stdio.h>
main()
{
 int year,month,day,days;
 printf("\nInput date(year,month,day):");
 scanf("%d,%d,%d",&year,&month,&day);
 printf("\n%d/%d/%d",year,month,day);
 days=sum_day(month,day);
 if(leap(year)&&month>=3)
    days=days+1;
 printf("is the %dth day in this year.\n",days);
}
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int sum_day(int month,int day)
{
int i;
for(i=1;i<month;i++)
    day+=day_tab[i];
return(day);
}
int leap(int year)
{
int leap;
leap=year%4==0&&year%100!=0||year%400==0;
return(leap);
}
 这段代码错了哪里?

道之所存,师之所存。
2010-05-24 23:56
duanxianla
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-25 06:00
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
回复 7楼 duanxianla
很头晕吗?我请人帮你按按摩?……还好啊,我怎么越看越觉得简洁啊……哈哈

我很懒,但我讨厌别人说我懒……
2010-05-28 19:22
raomuming
Rank: 1
等 级:新手上路
帖 子:5
专家分:5
注 册:2010-4-7
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int days1[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int days2[12]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年
    int year,month,day,result=0,i,j;
    scanf("%d %d %d",&year,&month,&day);
   
    if(year%400==0 || (year%100!=0 && year%4==0))
    {
       for(i=0;i<month-1;i++)
          result += days2[i];               
    }
    else
    {
       for(i=0;i<month-1;i++)
          result += days1[i];   
    }
   
    result = result + day;
    printf("---%d---",result);
    system("PAUSE");
    return 0;
}
2010-05-28 19:56
快速回复:问题来啦
数据加载中...
 
   



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

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