鱼C论坛

 找回密码
 立即注册
查看: 6704|回复: 18

求Pow函数的编写,哪里的错误?

[复制链接]
发表于 2012-8-14 11:39:57 | 显示全部楼层 |阅读模式
1鱼币
  1. #include<stdio.h>
  2. void main()

  3. {
  4.         double power(double a,double b);
  5.         double a,b,c;
  6.         scanf("%ld,%ld",&a,&b);
  7.     c=power(a,b);
  8.         printf("%ld 的 %ld 是 %ld!",&a,&b,&c);
  9. }
  10. double power(double a,double b)
  11. {
  12.         double z;
  13.         double c=1.0;
  14.         int i;
  15.         for(i=0;i<b;i++);
  16.         {
  17.                 c=c*a;       
  18.         }
  19.         return (z);
  20. }
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 14:19:43 | 显示全部楼层
你把z初始化程序就可以运行了, 还有不知道这个z有什么作用, 毫无意义
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 14:48:10 | 显示全部楼层
  1. #include<stdio.h>

  2. void main()


  3. {

  4.         double power(double a,double b);

  5.         double a,b,c;

  6.         scanf("%ld,%ld",&a,&b);

  7.     c=power(a,b);

  8.         printf("%ld 的 %ld 是 %ld!",&a,&b,&c);

  9. }

  10. double power(double a,double b)

  11. {

  12.         

  13.         double c=1.0;

  14.         int i;

  15.         for(i=0;i<b;i++);

  16.         {

  17.                 c=c*a;        
  18.         }

  19.         return (c);

  20. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 16:39:34 | 显示全部楼层
16.        for(i=0;i<b;i++);//提示就到这里 LZ 剩下的看你的悟性了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 16:40:25 | 显示全部楼层
07.        scanf("%ld,%ld",&a,&b);//scanf的格式字符串里面有一个逗号 你在输入的时候 10,5 也得输入逗号
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 16:41:44 | 显示全部楼层
09.        printf("%ld 的 %ld 是 %ld!",&a,&b,&c);//&a是指向a的指针
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 16:42:23 | 显示全部楼层
07.        scanf("%ld,%ld",&a,&b);//发现另一个问题 %lf才是double的 %ld应该是long int

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 16:42:54 | 显示全部楼层
09.        printf("%ld 的 %ld 是 %ld!",&a,&b,&c);//同上
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 16:43:43 | 显示全部楼层
return (z);//这个不是错误 不过 这个括号的多余的 删掉吧 看着太业余
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 16:44:55 | 显示全部楼层
2楼 提醒我了 你的函数power应该return的是c 而不是莫名其妙的z
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 17:00:00 | 显示全部楼层
本帖最后由 zquchs 于 2012-8-14 17:09 编辑
  1. #include <stdio.h>

  2. double power(double a,int b);  //声明power函数

  3. void main()
  4. {
  5.         double a,c;
  6.         int b;

  7.         printf("请输入a和b的值:"); //提示下人家输入值
  8.         scanf("%lf%d",&a,&b);

  9.     c=power(a,b);

  10.         printf("%lf的%d次方是%.2lf\n",a,b,c);  //%d是用在整型变量的
  11. }

  12. double power(double a,int b)
  13. {
  14.         double c=1.0;
  15.         int i;

  16.         for(i=0;i<b;i++)     //LZfor格式你都写错了
  17.         {
  18.                 c=c*a;            
  19.         }
  20.         return (c);
  21. }
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 17:12:36 | 显示全部楼层
有各种大小毛病,主要是FOR 循环你加上分号,这样后面的语句就不执行了。其他的可以自己调试。自己动手的才记忆的牢固。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 20:03:14 | 显示全部楼层
  1. #include<stdio.h>

  2. void main()


  3. {
  4.        
  5.         double power(double a,double b);
  6.        
  7.         double a,b,c;
  8.        
  9.         scanf("%ld,%ld",&a,&b);
  10.        
  11.     c=power(a,b);
  12.        
  13.         printf("%ld 的 %ld 是 %ld!",&a,&b,&c);
  14.        
  15. }

  16. double power(double a,double b)

  17. {
  18.        
  19.         double z;
  20.        
  21.         double c=1.0;
  22.        
  23.         int i;
  24.        
  25.         for(i=0;i<b;i++);
  26.        
  27.         {
  28.                
  29.                 c=c*a;        
  30.         }
  31.        
  32.         return (z);                //在这个函数里面你定义Z的作用是什么? Z 没有被用到 也没有被初始化 返回什么?
  33.        
  34. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-14 21:13:58 | 显示全部楼层
开始scanf();前没有提示输入的printf(),scanf()里的控制符我想应该是%lf,而不是%ld,最后的printf也是一样的错误。被调用函数power()里返回值是z,应该是c。还有for循环括号后不能有分号
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-15 17:47:39 | 显示全部楼层
本帖最后由 暮尘 于 2012-8-15 19:43 编辑


    1. #include<stdio.h>
    2. int main()

    3. {
    4.         //感觉你要求的应该是整形的  对于幂而言  幂一般是整数,当然,小数幂也可以写
    5.         //这里把问题简化为整数幂
    6.         //double power(double a,double b);改为:
    7.         double power(double ,int);

    8.         //double a,b,c;也要改写
    9.         double a,c;
    10.         int b;

    11.         //%d  %ld是用来输入int  long int  输入float 要%f   double要%lf
    12.         //scanf("%ld,%ld",&a,&b);
    13.         scanf("%lf,%d",&a,&b);

    14.         c=power(a,b);
    15.         //printf("%ld 的 %ld 是 %ld!",&a,&b,&c);
    16.         //输出语句中直接打变量名 不需要加引用符号&  输出格式也要对应
    17.         printf("%lf 的 %d 次方是 %lf!",a,b,c);


    18.         return 0;
    19. }

    20. double power(double a,int b)
    21. {
    22.         //double z;该变量无意义
    23.         double c=1.0;
    24.         int i;
    25.         //for()语句后面不要跟着分号;
    26.         //for(i=0;i<b;i++);
    27.         for(i=0;i<b;i++)
    28.         {
    29.                 c=c*a;
    30.         }
    31.         // return (z);
    32.         //需要那个值返回就返回那个值  不要依样画葫芦 一定要 return z;
    33.         return c;
    34. }
    复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-15 17:48:23 | 显示全部楼层
问问楼上  怎么添加代码  为什么我的代码回复就不是你们那样?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-15 18:23:19 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-16 00:51:06 | 显示全部楼层
看着蛋疼啊。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2012-8-20 17:34:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 16:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表