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

请问这段代码都有些哪些错误

#include <stdio.h>
int main()
{
 /* 定义需要计算的日期 */
 int year = 2008;
 int month = 8;
 int day = 8;
 /*
  * 请使用switch语句,if...else语句完成本题
  * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
  * 小编还是希望大家独立完成哦~
  */
 int flag, sum;
 if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)flag = 1;
 else flag= 0;
 switch (month)
 {
 case 1:sum = day;
 case 2:sum += 31;
 case 3: sum += 28;
 case 4: sum += 31;
 case 5: sum += 30;
 case 6: sum += 31;
 case 7: sum += 30;
 case 8: sum += 31;
 }
 if (flag=1)sum += 1;
 printf("%d年%d月%d日是该年第%d天", year, month, day, sum);
 return 0;
}



正在回答

1 回答

存在的问题一:sum没有初始化。

问题二:switch用法思路不对;

你的写法天数和只会加前一个月,想要达到题目要求的话,月份应该从大到小写:

 switch (month)

 {

case 8: sum += 31;

case 7: sum += 30;

case 6: sum += 31;

case 5: sum += 30;

case 4: sum += 31;

case 3: sum += 28;

case 2:sum += 31;

case 1:sum += day;

 }


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

举报

0/150
提交
取消

请问这段代码都有些哪些错误

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