0

このエラーが発生し続けるのはなぜですか? HELP ME これはホームワークです。私は明らかにプログラミングのヘルプが初めてです。$ 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では、ブロック内に関数を実装しません。代わりに、関数はグローバルスコープで実装されます。

switch最後の右角かっこを取り外して、 inの終わりの直後に置きint main(void)ます。これ以上、エラーは発生しません。

編集:

まず第一に..私はあなたのソースコードがコンパイルに失敗する理由は上記のとおりだと確信しています。

また、Davidの回答を確認してください。これは、呼び出しを意図しているときに関数宣言を行ったとみなされているためです。ただし、この間違いによってコンパイル時エラーが発生することはありませんでした。

于 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 に答える