问一下这个程序为什么会错呢

 #include<stdio.h>
#include<ctype.h>
/*获取小数*/
/*
double getfloat(double *pn)
{
    char c;int sign;
    while (isspace(c = getchar()))
        ;
    if (isdigit(c) || c == '.' || c == '-')
    {
        if (c == '-')
        {
            sign = -1;
        }
        else if (c == '.')
        {
            int power=1;
            while ((c = getchar()) != EOF&&isdigit(c))
            {
                *pn = *pn * 10 + (c - '0');
                power *= 10;
             }
            printf("++%lf", *pn);
            *pn = (*pn / power);    printf("%lf", *pn);
            return *pn;
        }
        else
        {
            double temp=0.0;
            for(;isdigit(c);c=getchar())
            {
                *pn = *pn * 10 + (c - '0');
            }
            double power = 0.0;
            if (c == '.')
            {
                c = getchar();
                for (;isdigit(c);c = getchar())
                {
                    temp = 10 * temp + (c - '0');
                    power *= 10;
                }
            }
            *pn = (*pn + temp / power); 
            return *pn;
        }
    }
    else
    {
        return -1;
    }
}
int main(void)
{
    double p = 0.0;
    double *pn = &p;
    double c=getfloat(pn);
    printf("%lf",c);
}

出错会有调试信息的,学着去根据提示信息定位错误。

/*获取小数*/
/*

你下面多了一个注释的前半截

出错的信息是什么呢????

代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。