注册 登录
编程论坛 C++教室

【疑惑】判断这一天是这一年的第几天?

如果快乐↑ 发布于 2007-09-13 14:30, 780 次点击

1.#include <stdio.h>
void main()
{
int day=0,month,year,sum=0,temp=0;
printf("\nplease input year,month,day\n");
scanf("%4d,%2d,%2d",&year,&month,&day);

if((year%400==0)||(year%4==0&&year%100!=0))
temp=1;
if(month<0&&month>12)
{
printf("The month is erroy.Put the number");
scanf("%d",&month);
}
if(day<0&&day>31||(month>2&&day>28)||(temp=1&&month>29))
{
printf("The day is erroy.Put the number");
scanf("%d",&day);
}


switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;

}

if(temp=1)
{
if(month>2)


printf("It is the %dth day.\n",sum+day+1);

else

printf("It is the %dth day.\n",sum+day);
}
else

printf("It is the %dth day.\n",sum+day);
}


************************************************************************************

看过n 多次,思路因该没问题 啊
可就是输不出答案
而且对输入数据出错的if 判断似乎也没起到作用
哪位大哥能帮帮我看看
小弟感激不尽

[此贴子已经被作者于2007-9-13 16:16:01编辑过]

6 回复
#2
snakeImao2007-09-13 15:23
以下是引用如果快乐↑在2007-9-13 14:30:40的发言:

1.#include <stdio.h>
void main()
{
int day=0,month,year,sum=0,temp=0;
printf("\nplease input year,month,day\n");
scanf("%4d,%2d,%2d",&year,&month,&day);

if((year%400==0)||(year%4==0&&year%100!=0))
temp=1;
if(month<0&&month>12)
{
printf("The month is erroy.Put the number");
scanf("%d",&month);
}
if(day<0&&day>31||(month>2&&day>28)||(temp=1&&month>29))
{
printf("The day is erroy.Put the number");
scanf("%d",&day);
}


switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;

}

if(temp=1)
{
if(month>2)


printf("It is the %dth day.\n",sum+day+1);

else

printf("It is the %dth day.\n",sum+day);
}
else

printf("It is the %dth day.\n",sum+day);
}


************************************************************************************

看过n 多次,思路因该没问题 啊
可就是输不出答案
而且对输入数据出错的if 判断似乎也没起到作用
哪位大牛能帮帮我看看
小弟感激不尽

"哪位大牛能帮帮我看看"

请问"大牛"会 C++ 吗??

#3
blueness212007-09-13 17:12
看了半天我直接晕了,我会关注大家的解答...
#4
如果快乐↑2007-09-14 09:18

哪位大哥大姐帮帮小弟看看啊
不用这种方法我做出来了
可是这种switch思路也想不出有什么漏洞啊
这是我在知道里面看到的问题
昨天直接做到我晕
#5
sunkaidong2007-09-14 09:45

#include <stdio.h>
void main()
{
int day=0,month,year,sum=0,temp=0;
printf("\nplease input year,month,day\n");
scanf("%4d,%2d,%2d",&year,&month,&day);

if((year%400==0)||(year%4==0&&year%100!=0))
temp=1;
if(month<0&&month>12)
{
printf("The month is erroy.Put the number");
scanf("%d",&month);
}
if(day<0&&day>31||(month>2&&day>28)||(temp=1&&(month==2&&day>29)))
{
printf("The day is erroy.Put the number");
scanf("%d",&day);
}


switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;

}

if(temp=1)
{
if(month>2)


printf("It is the %dth day.\n",sum+day+1);

else

printf("It is the %dth day.\n",sum+day);
}
else

printf("It is the %dth day.\n",sum+day);
getchar();
}
加横线的地方,你看看啊.

#6
Mrˇ咔ベ2007-09-18 03:52

这题目其实挺简单的。。。你们做出来杂显得那么复杂,我看都懒得去看。。。。

#7
chen78062007-09-18 08:05
以下是引用Mrˇ咔ベ在2007-9-18 3:52:22的发言:

这题目其实挺简单的。。。你们做出来杂显得那么复杂,我看都懒得去看。。。。

“专家级”的来了,其实可能是一只菜菜鸟。

1