回 帖 发 新 帖 刷新版面

主题:寻找一行之错

#include "stdafx.h"
#include <stdio.h>

int main(int argc, char* argv[])
{int sumday(int month,int day);
    int year,month,day,days,leap(year);
    scanf("%d,%d,%d",&year,&month,&day);
    printf("%d/%d/%d",year,month,day);
    days=sumday(month,day);
   [color=800000] if(leap(year)&&month>=3)[/color]    
    days+=1;
    printf("is the %dth day in this year.\n",days);
}
 int sumday(int month,int day)
{int daya[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 int i;
 for(i=1;i<month;i++)
 day+=daya[i];
 return(day);
}
 int leap(int year)
{int leap; 
    leap=year%4==0&&year%100!=0||year%400==0;
    return(leap);
}

回复列表 (共2个回复)

沙发

函数在定义前调用的话 必须在调用前申明
你在main函数之前加一行
int leap(int year);
应该就可以了
或者你也可以直接把函数的定义部分全部移动到main函数前面去

板凳

还有,函数int sumday(int month,int day) 也必须在调用前申明

我来回复

您尚未登录,请登录后再回复。点此登录或注册