永发信息网

只用if 和switch语句做的这个小程序能不能精简一点。

答案:3  悬赏:40  手机版
解决时间 2021-03-23 01:07
只用if 和switch语句做的这个小程序能不能精简一点。
最佳答案
用数组和循环。可以改为下面这样(如果语法不对自己改一下):
int days_of_month[]={31,28,31,30,31,30,31,31,30,31,30,31}
int day_of_year=0;

if (month < 1 || month >12)
{
count << "无效的月份。";
return;
}

if (year%4 == 0)
{
if (year%100 == 0)
{
if (year%400 == 0) leap = 1;
else leap = 0;
}
else leap = 1;
}
else leap = 0;

day_of_month[1] += leap; //如果闰年,二月增加1天。

if (day < 1 || day > days_of_month[month])
{
count << "无效的日期。";
return;
}

for (int i=0;i{
day_of_year+= day_of_month[i];
}
day_of_year += day;
cout<
全部回答
  • 1楼网友:神鬼未生
  • 2021-03-22 15:09
把相同的部分提取出来
  • 2楼网友:第四晚心情
  • 2021-03-22 14:57
这问题用switch要麻烦很多得先用一个if else语句得到分数对应的字符 int i switch 似乎是不能判断的,你只能用 if else来做。。 用switch判断
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯