重新定义;以前的定义是'数据变量'

时间:2014-02-13 04:04:49

标签: c

好吧,我快要忘记了。我应该为课程编写一个程序来确定你输入的那一天的数字(占闰年),我觉得我不知道我在做什么。在压力水平提高之前,我将不胜感激。在我能够测试我的程序(我怀疑会起作用)之前我遇到的最后错误是:

error C2365: 'leap' : redefinition; previous definition was 'data variable'

error C2365: 'count' : redefinition; previous definition was 'data variable'

源代码:

#include <stdio.h>

int main(void){

    int d, m, y, x, day, leap, count;


    //Input values for date
    printf("\n Input the Day: ");
    scanf_s("%f", &d);

    printf("\n Input the Month: ");
    scanf_s("%f", &m);

    printf("\n Input the Year: ");
    scanf_s("%f", &y);
    //End input

    int count(int m, int day);

    int leap(int y, int x);



    if (x == 1){
            printf("\nThe day of the year is %f", day + 1);
    }
    else{
            printf("\nThe day of the year is %f", day);
    }

    system("pause");
    return(0);
}


//Count the number of days
int count(int m, int day, int d){
    if (m == 1){
        day = d;
    }
    if (m == 2){
        day = 31 + d;
    }
    if (m == 3){
        day = 59 + d;
    }
    if (m == 4){
        day = 90 + d;
    }
    if (m == 5){
        day = 120 + d;
    }
    if (m == 6){
        day = 151 + d;
    }
    if (m == 7){
        day = 181 + d;
    }
    if (m == 8){
        day = 212 + d;
    }
    if (m == 9){
        day = 243 + d;
    }
    if (m == 10){
        day = 273 + d;
    }
    if (m == 11){
        day = 304 + d;
    }
    if (m == 12){
        day = 334 + d;
    }
    return(day);
}

//Determine if it's a leap year
int leap(int y, int x){
    if (y % 400 == 0){
        x = 1;
    }
    else if (y % 100 == 0){
        x = 0;
    }
    else if (y % 4 == 0){
        x = 1;
    }
    else{
        x = 0;
    }
    return(x);
}

3 个答案:

答案 0 :(得分:0)

无需声明函数leapcount类似数据类型。

int d, m, y, x, day, leap, count;

删除leapcount,如下所示

int d, m, y, x, day;

下面是你的函数原型,这是正确的(足够编译器)

int count(int m, int day);

int leap(int y, int x);

答案 1 :(得分:0)

countleapmain中的变量和函数名称相同,无效。

答案 2 :(得分:0)

以下是函数声明,main()中不允许这些函数声明(本地函数定义是非法的)。你应该把它们放在main()之前。

int count(int m, int day);
int leap(int y, int x);

此外,根据您的定义,count()的函数声明应为:

int count(int m, int day, int d);

并删除int leap, count;,这是数据类型的声明(此处为int),而不是函数。

如果您想在main()中调用它们,请使用:

count(m, day, d);
leap(y, x);