关于c语言指针函数的有关问题,

关于c语言指针函数的问题,请教高手!
最近在学习c语言指针部分,用到指针函数,写了如下程序,运行有错误。但我明明觉得不错哇!望高手赐教!!
#include <stdio.h>


void main()
{
  double add(double,double); //declare add,sub,mul,div functions
  double sub(double,double);
  double mul(double,double);
  double div(double,double);
   
  double (*oper_fun[])(double,double)={add,sub,mul,div};

  while(1)
  {  
  double a,b,c;
  printf("This is a simple calculator,it has 5 functions as follows!\n");
  printf("1.add\t2.sub\t3.mul\t4.div\t");
  printf("Please enter as such format:number number operation\n");
  scanf("%f%f%d",&a,&b,&c);
  printf("Result is:%f\n",oper_fun[ c - 1](a,b));
  }


}

  double add(double x,double y) //add function
  {return x+y;}
  double sub(double x,double y) //sub function
  {return x-y;}
  double mul(double x,double y) //mul function
  {return x*y;}
  double div(double x,double y) //div function
  {return x/y;}



------解决方案--------------------
C/C++ code

#include <stdio.h>

void main()
{
    double add(double,double); //declare add,sub,mul,div functions
    double sub(double,double);
    double mul(double,double);
    double div(double,double);

    double (*oper_fun[])(double,double)={add,sub,mul,div};

    while(1)
    {   
        double a,b;
        int c; //C改整型
        printf("This is a simple calculator,it has 5 functions as follows!\n");
        printf("1.add\t2.sub\t3.mul\t4.div\t");
        printf("Please enter as such format:number number operation\n");
        scanf("%lf%lf%d",&a,&b,&c); //使用%lf即可
        printf("Result is:%f\n",oper_fun[ c - 1](a,b));
    }
}

double add(double x,double y) //add function
{return x+y;}
double sub(double x,double y) //sub function
{return x-y;}
double mul(double x,double y) //mul function
{return x*y;}
double div(double x,double y) //div function
{return x/y;}