Anny黄 发表于 2015-5-31 11:15:31

程序有点小问题,可能又是scanf函数的问题

本帖最后由 Anny黄 于 2015-5-31 11:21 编辑

该代码是要实现用户输入数值的次方后进行阶乘。
如代码所示。不是应该输入2个值吗,为什么他要我输入3个值才会进行下一步运算。但是算出来后的结果是第一个数和第二个数的结果。第三个数都没有用到,单步调试也找不到那个数用在什么地方了。直接上代码:#include<stdio.h>
void main()
{      
      int power(int a ,int b);
      int factorial(int pwoer );
                int a,b,c,d;
                scanf("%d,%d\n",&c,&d);
                a=factorial(b=power(c,d));
                printf("%d\n",a);
}
int power(int a,int b)
{
      int q,w;
      w=a;
      for(q=1;q<b;q++)
      {
                w=w*a;
      }
      return(w);
}
int factorial(int power )
{
      int p;
      p=power;
      for(;p>1;p--)
                {
                        power=power*p;
                }
                return(power);
}




小人 发表于 2015-5-31 11:31:47

scanf("%d,%d\n",&c,&d);   
把这句 修改成
scanf("%d,%d",&c,&d);   这样就好    scanf一般不要写多余的符号进去
{:9_240:}

Anny黄 发表于 2015-5-31 11:52:48

小人 发表于 2015-5-31 11:31
scanf("%d,%d\n",&c,&d);   
把这句 修改成
scanf("%d,%d",&c,&d);   这样就好    scanf一般不要写 ...

{:9_240:}
真的是这样,请问为什么不能加空格呢。加空格的话为什么会再让我输入个数字,但是那个数字又用不到,何解呢!

小人 发表于 2015-5-31 11:57:36

Anny黄 发表于 2015-5-31 11:52
真的是这样,请问为什么不能加空格呢。加空格的话为什么会再让我输入个数字,但是那个数字又 ...

/n 是换行   {:9_240:}   
你可以scanf("%d %d",&c,&d);这样就是空格
页: [1]
查看完整版本: 程序有点小问题,可能又是scanf函数的问题