岁月 发表于 2014-11-1 23:17:10

这个问题非常大打了一天居然是错的求改正

#include <stdio.h>
void main()
{
int a,b,c,d,f,g;
printf("输入年月日判断一天是一年的第几天");
scanf("%d%d%d",&a,&b,&c);
if(a%4)
{
   if(a%400)
   {
    d=0;
   }else
   {
    d=1;
   }
}else
{
   d=1;
}
if(d)
{
g=29;
}else
{
g=28;
}
switch(b)
{
case'1':
   f=c;
   break;
case'2':
   f=c+g;
   break;
case'3':
   f=31+g+c;
   break;
case'4':
   f=31+g+30+c;
   break;
case'5':
   f=31+g+30+31+c;
   break;
case'6':
   f=31+g+30+31+30+c;
   break;
case'7':
   f=31+g+30+31+30+31+c;
   break;
case'8':
   f=31+g+30+31+30+31+31+c;
   break;
case'9':
   f=31+g+30+31+30+31+31+30+c;
   break;
case'10':
   f=31+g+30+31+30+31+31+30+31+c;
   break;
case'11':
   f=31+g+30+31+30+31+31+30+31+30+c;
   break;
case'12':
   f=31+g+30+31+30+31+31+30+31+30+31+c;
   break;
}
printf("您输入的是第%f",f);
}

牡丹花下死做鬼 发表于 2014-11-1 23:28:30

#include <stdio.h>

int leap(int i)
{
        if(i%4 == 0 && i%100 != 0 || i%400 == 0)
                return 1;
        else
                return 0;
}

void main()
{
      int y,m,d,i,sum = 0;
                int a = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
                int        b = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
      printf("请输入年月日(用逗号分隔):");
                scanf("%d,%d,%d",&y,&m,&d);
      if(leap(y) == 1)
                {
                        for(i=0;i<m-1;++i)
                        {
                                sum += b;
                        }
                        sum += d;
                }
                else
                {
                        for(i=0;i<m-1;++i)
                        {
                                sum += a;
                        }
                        sum += d;
                }
                printf("%d年%d月%d天是今年的第%d天\n", y, m, d, sum);
}

岁月 发表于 2014-11-1 23:52:39

牡丹花下死做鬼 发表于 2014-11-1 23:28


好厉害的样子......

machimilk 发表于 2014-11-2 03:00:47

本帖最后由 machimilk 于 2014-11-2 03:05 编辑

试试这个
#include <stdio.h>
int main()
{
      int i=0;//计数器
      int year=0,month=0,day=0,total=0;//接收用户输入的年月日和用于累加的总计
      int dayofmonth={31,28,31,30,31,30,31,31,30,31,30,31};//1-12月 每月的天数
      printf("请输入您想知道是当年中第几天的年月日,中间用-分隔 例如2014-11-2\n");
      scanf("%d-%d-%d",&year,&month,&day);
      while(month>++i)
                   total+=dayofmonth;//按月份累加每月天数
      total+=day;//循环月份的天数之后再加上 日的天数
      total+=(year%4==0&&year%100!=0||year%400==0);//如果闰年就多加一天(平年+0天)
      printf("%d年%d月%d日 是%d年中的第%d天\n",year,month,day,year,total);
      return 0;
}

wanjian 发表于 2014-11-2 08:05:08

判断闰年条件不足

tlwangxd 发表于 2014-11-3 09:26:19

学习

帅哥星 发表于 2014-11-3 17:06:35

小山童鞋 发表于 2014-11-4 20:17:04

machimilk 发表于 2014-11-2 03:00
试试这个

一看你的代码就是高手。有注释,变量名也会取。

iroser 发表于 2014-11-6 13:43:19

:shock:

huowu1990 发表于 2014-11-6 14:29:02

...、 完全是云里雾里
页: [1]
查看完整版本: 这个问题非常大打了一天居然是错的求改正