C语言编程:输入年月日计算该日是该年中的第几天。。。这里那里错了?????

#includemain(){intyear,month,day,days,i,d;scanf("%d-%d-%d",&year,&month,&day);days=0;... #includemain(){ int year,month,day,days,i,d; scanf("%d-%d-%d",&year,&month,&day); days=0; for(i=1;i<month;i++) { switch(i) { case 1:case 3:case 5:case 7:case 8:case 10:case 12:d=31;break; case 4:case 6:case 9:case 11:d=30break; case 2: if(year%4==0&&year%100!=0||year%400==0) d=29; else d=28; } days+=d; }printf("%d",days);} 展开
 我来答
cjj796
推荐于2016-04-13 · TA获得超过8701个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3320万
展开全部

你好!!!

改动一:case 11:

                d=30;  // 这里少了一个分号 


改动二:days+=day;  // 循环外面,这里加上输入的日期数


完整的代码:

#include<stdio.h>
main()
{
int year,month,day,days,i,d;
scanf("%d-%d-%d",&year,&month,&day);
days=0;
for(i=1;i<month;i++)
{
switch(i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
d=31;
break;
case 4:
case 6:
case 9:
case 11:
d=30;  // 这里少了一个分号 
break;
case 2:
if(year%4==0&&year%100!=0||year%400==0)
d=29;
else 
d=28;
}
days+=d;
}
days+=day;  // 这里加上输入的日期数
printf("%d",days);
}
追问

追答

在这里可以:这里加可以吗

    scanf("%d-%d-%d",&year,&month,&day);   

    days=day;  // 赋值后,这里直接把输入的日期加上


你说的地方,要是加的话,再想想

完整的修改后代码:

#include<stdio.h>
main()
{
int year,month,day,days,i,d;
scanf("%d-%d-%d",&year,&month,&day);
days=day;   // 赋值后,这里直接把输入的日期加上
for(i=1;i<month;i++)
{
switch(i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
d=31;
break;
case 4:
case 6:
case 9:
case 11:
d=30;  // 这里少了一个分号 
break;
case 2:
if(year%4==0&&year%100!=0||year%400==0)
d=29;
else 
d=28;
}
days+=d;
}
printf("%d",days);
}
duguodong189
2013-11-21 · TA获得超过1069个赞
知道小有建树答主
回答量:1055
采纳率:33%
帮助的人:429万
展开全部
#include
main()
{    int year,month,day,days,i,d;
    scanf("%d-%d-%d",&year,&month,&day);
    days=0;
    for(i=1;i<month;i++)
    {    switch(i)
        {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12: d=31; break;
            case 4:
            case 6:
            case 9:
            case 11:  d=30 ;//这里出错了
                        break;
            case 2: if(year%4==0&&year%100!=0||year%400==0)
                            d=29;else d=28;
            }days+=d;
            
           printf("%d",days);
          }
追问

还是不行。。。

计算1号以后的就不行了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式