为了账号安全,请及时绑定邮箱和手机立即绑定

如果输入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的值是不是超出范围呢?如果有,那应该怎么写呢?求解答

正在回答

2 回答

在swith前加个if判断下呗

0 回复 有任何疑惑可以回复我~
#1

qq_淡末初夏_03336219 提问者

非常感谢!
2016-07-04 回复 有任何疑惑可以回复我~

应该是编译器的问题,codeblocks通过编译。

0 回复 有任何疑惑可以回复我~
#1

qq_淡末初夏_03336219 提问者

那请问怎么在代码执行前通过一个判断语句制止day大于30呢?
2016-07-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如果输入day大于31,vc++会一直提示linking,且无法正常退出编译,这是为什么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信