如果输入day大于31,vc++会一直提示linking,且无法正常退出编译,这是为什么?
#include <stdio.h> int main() { /* 定义需要计算的日期 */ int year = 1230; int month = 4; int day = 46; int sum ,flag; //定义天数和闰年变量 /* * 请使用switch语句,if...else语句完成本题 * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办” * 小编还是希望大家独立完成哦~ */ switch (month) { case 1:sum = day;break; case 2:sum = day + 31;break; case 3:sum = day + 28 + 31;break; case 4:sum = day + 31 + 28 +31;break; case 5:sum = day + 30 + 31 + 28 + 31;break; case 6:sum = day + 31 + 30 + 31 + 28 + 31;break; case 7:sum = day + 30 + 31 + 30 + 31 + 28 + 31;break; case 8:sum = day + 31 + 30 + 31 + 30 + 31 + 28 + 31;break; case 9:sum = day + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31;break; case 10:sum = day + 30 + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31;break; case 11:sum = day + 31 +30 + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31;break; case 12:sum = day + 30 + 31 +30 + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31;break; default : printf("一年只有12个月哦。");break; } if (year%400==0 || year%4==0&&year%100!=0) flag = 1; else flag = 0; if (flag = 1 && month >= 2) sum++; printf("%d年%d月%d日是这一年的第%d天",year,month,day,sum); return 0; }
代码如上,如果说这个问题不能解决,那能不能在核心代码运行前执行一个范围判断语句判断day的值是不是超出范围呢?如果有,那应该怎么写呢?求解答