慕桂英7447609
2019-03-08 15:34
不知道哪里有问题? 求指点求解惑!
你的第36行,有点问题,应该是
if (flag==1&&month>2),必须满足同时两个条件。(闰年 和 月份>2)。才行
哪有你这样做的,代码太多冗余;直接找规律就好了。就只算1--7月的就行了,这7个月中,除了2月需要判断是否为闰年外,其他的月份都可以用奇偶性来判断。-.-!
#include <stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
int i,days,twoMn,sum;//自定义变量
/*
* 请使用switch语句,if...else语句完成本题
* 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
* 小编还是希望大家独立完成哦~
*/
sum=0;
if (((year%4==0)&&(year%100!=0))||(year%400==0))//判断是否为闰年
{
twoMn=29;//如果为闰年,则2月份为29天
} else {twoMn=28;}//否则为28天
for(i=1;i<=7;i++)
{
if(i%2==0){ days=30;} else {days=31;}//根据月份奇偶性得出当前循环的月份有多少天
switch(i)
{
case 2: sum += twoMn;continue;//如果是2月份,则加上上面得出的2月份天数,后面进行跳过,否则多加上了个月的天数;
}
sum+=days;//除2月外 天数总和加上当月得到的天数
}
sum+=8;//由于8月份8号未满一个月,只多了8天,则外部直接加上8月的第8天
printf("%d年%d月%d日是该年的第%d天。",year,month,day,sum);
我没说8月没有31天啊,month=month-1了 ,case7才是
8月8“日”,你输入的是“号”,并且8月有31天。
C语言入门
926206 学习 · 20797 问题
相似问题