wang815309286 发表于 2016-8-23 12:05:01

新人求助!程序语义错误,但是自己找不出来问题出在哪?求大神讲解

#include<stdio.h>
double x(double,int);                //当a大于0时,求b的a次幂
double y(double,int);                //当a小于0时,求b的a次幂
int main(void)
{
        int a;
        double b,pow;                        //pow为b的a次幂的值
        printf("enter two number:\n");
        while(scanf("%lf%d",&b,&a)==2)
        {
                if(b==0)                        //当b=0时。pow=0
                {
                pow=0;
                printf("printf pow:%lf\n",pow);
                continue;
                }
                if(a==0)                        //当a=0时,pow=1
                {
                pow=1;
                printf("printf pow:%lf\n",pow);
                continue;
                }                                       
                if(a>0)                                //a大于0时求pow的值
                pow=x(b,a);
                else pow=y(b,a);        //a小于0时求pow的值
                printf("printf pow:%lf\n",pow);
                printf("enter two number:\n");
        }
        printf("done\n");
        return 0;
}
double x(double b,int a)
{
        int i;
        double pow;
        for(i=0,pow=1.0;i>b;i++)
        pow*=b;
        return pow;
}
double y(double b,int a)
{
        int i;
        double pow;
        for(i=0,pow=1.0;i>a;i--)
        pow*=(1/b);
        return pow;
}

DarkSE 发表于 2016-8-23 13:11:00

不知道你说的语义错误是什么意思,但是你这里写错了
double x(double b,int a)
{
      int i;
      double pow;
      for(i=0,pow=1.0;i>b;i++)//错误
      pow*=b;
      return pow;
}
double y(double b,int a)
{
      int i;
      double pow;
      for(i=0,pow=1.0;i>a;i--)//错误
      pow*=(1/b);
      return pow;
}

wang815309286 发表于 2016-8-23 13:39:46

DarkSE 发表于 2016-8-23 13:11
不知道你说的语义错误是什么意思,但是你这里写错了

哦哦 知道了~感谢~~
页: [1]
查看完整版本: 新人求助!程序语义错误,但是自己找不出来问题出在哪?求大神讲解