我在兰州吃烧饼 发表于 2013-12-8 08:17:23

求高手帮忙纠正下程序 谢谢

#include <stdio.h>
void main()
{
        int year,day,leap,days,month;
        printf("please input year month and day:");
    scanf ("%d %d %d",year,month,day);
        if(year%4==0)
        {
                if (year%100==0)
                {
                        if(year%400==0)
                        {
                                leap=1;
                        }
                        else
                        {
                                leap=0;
                        }
                }

      else
                {
                        leap=1;
                }
        else
        {
                leap=0;
        }
        if(leap && month>3)
        {
                if(month%2==0)
                {
                        days=(30*month)+(month/2)+1;
                }
                else
                {
                        days=(31*month)-(month/2)+1;
                }
        }
    else
        {
            if(month%2==0)
                {
                        days=(30*month)+(month/2);
                }
                else
                {
                        days=(31*month)-(month/2);
                }
        }
        printf("%d",days);
}
上面的程序有错。。。显示说1.说else用错了 2说scanf那有错 3.说最后一个括号}有错
但还是不知道怎样改 求高手帮忙改改谢谢

牡丹花下死做鬼 发表于 2013-12-8 08:39:46

#include <stdio.h>
void main()
{
        int year,day,leap,days,month;
        printf("please input year month and day:");
        //scanf ("%d %d %d",year,month,day);
        scanf("%d %d %d",&year,&month,&day);
        /*if(year%4==0)
        {
                if (year%100==0)
                {
                        if(year%400==0)
                        {
                                leap=1;
                        }
                        else
                        {
                                leap=0;
                        }
                }
               
      else
                {
                        leap=1;
                }
      else//连续两个else不错才怪看你这代码就是判断是否是闰年是吧
      {
                        leap=0;
      }*/
                if(year%4 == 0 && year%100 != 100 || year%400 == 0)
                {
                        leap = 1;
                }
                else
                {
                        leap = 0;
                }
      
                if(leap && month>3)
      {
                        if(month%2==0)
                        {
                                days=(30*month)+(month/2)+1;
                        }
                        else
                        {
                                days=(31*month)-(month/2)+1;
                        }
      }
                else
      {
            if(month%2==0)
                        {
                                days=(30*month)+(month/2);
                        }
                        else
                        {
                                days=(31*month)-(month/2);
                        }
      }
      printf("%d",days);
        }

maomingkun 发表于 2013-12-8 09:53:14

scanf函数你忘记写取址符&了

风涯 发表于 2013-12-9 14:06:46

我用的这个编译器显示scanf没错,你的程序最后少了一个},还有一个else错了。

virusx1984 发表于 2013-12-16 22:40:00

1. scanf ("%d %d %d" &year, &month, &day);// 要加&
2. 第一個 else 前面少了個 } 並且 爲什麽會有兩個else?

此為初學者,鑒定完畢,要多加練習,自己調試、
页: [1]
查看完整版本: 求高手帮忙纠正下程序 谢谢