我该怎么判断下面这个日期是否合法 ?

题目描述
上网的时候经常需要用户填表输入出生日期,现在请你写一个程序来判断用户输入的日期是否合法,为了方便起见,2月29日总视为合法日期。如果输入的日期是合法的。输出yes,否则输出no
输入
有若干组日期输入
每组输入两个整数,中间用空格隔开,分别代表月份和日期。数据最后以0 0结束。0 0不做处理。
输出
每组日期对应输出一行,合法则输出yes,否则输出no
样例输入
1 24
1 3
2 99
-1 20
4 -10
15 2
0 0
样例输出
yes
yes
no
no
no
no
提示
12个月包含的天数分别为31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31

函数式编程
浏览 298回答 2
2回答

蓝山帝景

#define JANUARY 1#define FEBRUARY 2#define MARCH 3#define APRIL 4#define MAY 5#define JUNE 6#define JULY 7#define AUDUST 8#define SEPTEMBER 9#define OCTOBER 10#define NOVERBER 11#define DECEMBER 12#define MONTH 12#define DATALENTH 2int data[MONTH][DATALENTH];void getData(void);void output(void);void main(void){getData();output();getch();}void getData(void){int tempMonth,tempData;int i = 0;int flag = 0;while(!flag){flag = scanf("%d %d",&tempMonth,&tempData);getchar();/*清空缓存*/if(!flag){/*输入为整型以外的数据*/printf("DATA ERROR!");// getchar();/*清空缓存*/continue;}else{data[i][0] = tempMonth;data[i][1] = tempData;//printf("%d %d\n",data[i][0],data[i][1]);i++;flag = 0;}/*结束输入*/if( ( !tempMonth ) || ( !tempData ) ){break;}}}void output(void){int i = 0;while(!data[i][0] && !data[i][1])switch(data[i][0]){case FEBRUARY:if( 0 < data[i][1] < 30 ){printf("YES\n");}else{printf("NO\n");}break;case JANUARY:case MARCH:case MAY:case JULY:case AUDUST:case OCTOBER:case DECEMBER:if( 0 < data[i][1] < 32 ){printf("YES\n");}else{printf("NO\n");}break;case APRIL:case JUNE:case SEPTEMBER:case NOVERBER:if( 0 < data[i][1] < 31 ){printf("YES\n");}else{printf("NO\n");}break;default:printf("NO\n");break;}i++;}}

叮当猫咪

int n mif(n>o&&n<=10&&m>0&&m<=30){printf();}随便写了下,估计有很多错误的好久没懂c了但是思路是这样的、选择语句
打开App,查看更多内容
随时随地看视频慕课网APP