标题:一个数的x次幂之后再y次幂再z次幂········给个算法,回报专家分
只看楼主
李若斌
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:219
专家分:184
注 册:2009-9-30
得分:0 
其实LZ写的程序也是差不多,二楼的是用函数的方式.你要是不懂的话就再麻烦点理解用函数的调用来实现也是一样的.我也是初学者,希望我写的也能让你看下
#include <stdio.h>
void main( )
{ double pow(double x,double y)
  int a,b,c,d;
  double s1,s2,s3;
  scanf("%d%d%d%",&a &b &c &d);
  s1=pow(a,b);
  s2=pow(s1,c);
  s3=pow(s2,d);
  printf("%5f\n",s3);
}
double pow(double x,double y)
{double s=1;
 int i;
 for(i=1;i<=y;i++)
  s=x*s;
 return(s)
}
这个这里你就不需要知道POW函数是意义 这个POW函数是我自己定义的一个函数,就是求数X的Y次幂。这个是函数的调用,我不知道你学到函数那了没有。反正是比你那个看起来好像还要麻烦样的。呵呵 ! 第一次写 , 还请见谅。哪个高手看到有错误了 ,还请指点下小弟。

  
2009-11-08 08:08
刘月华
Rank: 2
等 级:论坛游民
帖 子:7
专家分:19
注 册:2009-11-6
得分:0 
你试试这个程序,应该可以的。
/*N次方,不需要函数了,都写在主函数里了。*/
#include <stdio.h>
int main (void)
{
    int x,y,z;
    int f_var,result1,result2,result;
    int i;

    f_var = 0;
    result1 = result2 = result = 1;

    printf("初值:");
    scanf("%d",&f_var);
    printf("要计算的几次方:");
    scanf("%d%d%d",&x,&y,&z);

    for(i = 1;i <= x;i ++)
    {
        result1 *= f_var;   
    }
    //printf("%d\n",result);
    for(i = 1;i <= y;i ++)
    {
        result2 *= result1;
    }
    for(i = 1;i <= z;i ++)
    {
        result *= result2;
    }


 
    printf("%d该值的%d,%d,%d次方后为:%d!",f_var,x,y,z,result);

   
    return 0;
}
2009-11-08 08:39
刘月华
Rank: 2
等 级:论坛游民
帖 子:7
专家分:19
注 册:2009-11-6
得分:0 
建议还是使用pow()
2009-11-08 08:39
李若斌
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:219
专家分:184
注 册:2009-9-30
得分:0 
回复 13楼 刘月华
你定义的变量全是整型?就不担心会溢出吗?
2009-11-08 08:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-291380-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.434351 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved