黑马程序员技术交流社区
标题:
题目:请用户输入年月日,计算出这一天是第几天.
[打印本页]
作者:
buzheng
时间:
2016-5-6 12:26
标题:
题目:请用户输入年月日,计算出这一天是第几天.
如题,要求:用户非法输入的时候,需要提示"非法输入",有且只能提示一次.
如何用最少的代码,把各种非法输入的情况表示出来呢
作者:
a_skting
时间:
2016-5-6 19:48
这是我写的之前要求用户输入一个1990年往后的年月日的判定,你参考一下。
int judgeYear(int *year, int *month, int *day)
{
do
{
printf("Enter the Data (yy-mm-dd):\n");
scanf("%d-%d-%d", year, month, day);
if(*year >= 1990 && *month >= 1 && *month <= 12)
{
// 计算天数是否合理
//判定非闰年该月天数是否合理。
switch( *month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(*day >= 1 && *day <= 31)
return 0;
break;
case 4:
case 6:
case 9:
case 11:
if(*day >= 1 && *day <= 30)
return 0;
break;
case 2:
if(runYear(*year))
{
if(*day >=1 && *day <=29)
return 0;
}
else
{
if(*day >= 1 && *day <= 28)
return 0;
}
break;
}
}
printf("Data is error.\n");
}while(1);
}
作者:
a_skting
时间:
2016-5-6 19:51
我觉得主要的判定是在于判定天数对不对。判定天数的思路大概在swith那里
作者:
buzheng
时间:
2016-5-7 08:03
a_skting 发表于 2016-5-6 19:48
这是我写的之前要求用户输入一个1990年往后的年月日的判定,你参考一下。
int judgeYear(int *year, int * ...
如果不考虑用户非法输入,这道题还是很简单的,加入非法输入就难了,不信的话,你可以试试
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2