求解答,用函数嵌套求简易的加减乘除计算器,哪错了?

我试了好几遍,都没找真正的错误

#include<stdio.h>
void add();
void sub();
void sum();
void div();
void displayMenu();

void displayMenu()
{
    printf("*****欢迎使用建议运算系统*****");
    printf("            1,加法           ");
    printf("            2,减法           ");
    printf("            3,乘法           ");
    printf("            4,除法           ");
    printf("            5,退出           ");
    printf("******************************");

}


float add(float x,float y)
{
    return x+y;
}


float sub(float x,float y)
{
    return x-y;
}


float sum(float x,float y)
{
    return x*y;
}


float div(float x,float y)
{
    return x/y;
}

void main()
{
    void displayMenu();
    float m,n;
    int i;
    do
    {
        printf("请输入运行代码(1-4): ");
        scanf("%d",&i);
        switch(i)
        {
        case 1: printf("请输入两个数:");
                scanf("%f %f",&m,&n);
                add(m,n);
                printf("x+y=%.2f",add(m,n));break;


        case 2: printf("请输入两个数:");
                scanf("%f %f",&m,&n);
                sub(m,n);
                printf("x-y=%.2f",sub(m,n));break;


        case 3: printf("请输入两个数:");
                scanf("%f %f",&m,&n);
                sum(m,n);
                printf("x*y=%.2f",sum(m,n));break;


        case 4: printf("请输入两个数:");
                scanf("%f %f",&m,&n);
                div(m,n);
                printf("x/y=%.2f",div(m,n));break;
        case 5:break;
        }
    }while(i!=5);

}

函数定义在主函数前无需声明 定义在主函数后才需要声明 所以删除

void add();
void sub();
void sum();
void div();
void displayMenu();

即可