0

为什么我不断收到此错误?帮帮我,这是家庭作业。我对编程帮助非常陌生。$ gcc homework.c homework.c:在函数'main'中:homework.c:32:6:错误:'DisplayMenu'的静态声明遵循非静态声明homework.c:11:7:注意:'的先前声明DisplayMenu' 在这里

#include <stdio.h>

void DisplayMenu();
void numberPlus10();
void numberTimes2();
void numberMinus1();
void numberTimesnumber();

int main (void)
{
    int choice;
    void DisplayMenu();
    scanf("%i", &choice);   

    switch (choice)
    {
        case 1:
            numberPlus10();
            break;
        case 2:
            numberTimes2();
            break;
        case 3:
            numberMinus1();
            break;
        case 4:
            numberTimesnumber();
            break;
        default:
            break;
    }

void DisplayMenu()
{
    printf("1. Number + 10\n");
    printf("2. Number * 2\n");
    printf("3. Number - 1\n");
    printf("4. Number * Number\n");
}

void numberPlus10()
{
    int x;
    printf("Please enter a number:\n");
    scanf("%i", &x);

    printf("Your number + 10 is %i\n", x + 10);
}

void numberTimes2()
{
    int x;
    printf("Please enter a number:\n");
    scanf("%i", &x);

    printf("Your number * 2 is %i\n", x * 2);
}

void numberMinus1()
{
    int x;
    printf("Please enter a number:\n");
    scanf("%i", &x);

    printf("Your number - 1 is %i\n", x - 1);
}

void numberTimesnumber()
{
    int x;
    printf("Please enter a number:\n");
    scanf("%i", &x);

    printf("Your number squared is %i\n", x * x);
}

}
4

2 回答 2

0

在 C 中,我们不在任何块内实现函数。相反,功能应在全局范围内实现。

去掉最后一个右括号,放在switchin的末尾int main(void),就不会再有错误了。

编辑:

首先..我确定以上是您的源代码无法编译的原因。

另外,请检查大卫的回答,因为我们都认为您在打算调用它时做了一个函数声明——尽管这个错误并没有触发编译时错误。

于 2013-03-15T08:01:26.053 回答
0

陈鹏宇当然是对的!但!你那里还有另一个错误。

 int choice;
 void DisplayMenu();  // You should not declare a function here.
 scanf("%i", &choice);   

我猜你打算调用这个函数 - 所以只需从行首删除“void”。

 int choice;
 DisplayMenu();   // Call DisplayMenu
 scanf("%i", &choice);   

并且...请阅读语言规范

于 2013-03-15T08:01:53.707 回答