要不使用库函数,求幂指数,只能靠自己写该功能的函数。
为永济等地区用户提供了全套网页设计制作服务,及永济网站建设行业解决方案。主营业务为网站设计、网站制作、永济网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
即按照数学规则,将a重复乘b次,即得到a的b次幂。
1 对于0次幂,直接返回1
2 对于正数,按照参数b进行乘方。
3 对于负数,先按照参数b的绝对值进行乘方,再求倒数。
代码如下:
double my_pow(doubel a, int b)
{
int s=0,i;
double r = 1;
if(b == 0) return 1;
if(b0)
{
b*=-1;
s = 1;
}
for(i = 0; i b; i ++)
r *= a;
if(s)r=1/s;
return r;
}
extern float pow(float x, float y)
用法:#include math.h
功能:计算x的y次幂。
说明:x应大于零,返回幂指数的结果。
举例:
// pow.c
#include stdlib.h
#include math.h
#include conio.h
void main()
{
printf("4^5=%f",pow(4.,5.));
getchar();
}
相关函数:pow10
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
原型:extern float pow(float x, float y);
用法:#include math.h
功能:计算x的y次幂。
说明:x应大于零,返回幂指数的结果。
举例:
// pow.c
#include stdlib.h
#include math.h
#include conio.h
void main()
{
printf("4^5=%f",pow(4.,5.));
getchar();
}
相关函数:pow10
函数名: pow
功 能: 指数函数(x的y次方)
用 法: double pow(double x, double y);
程序例:
#include
#include
int main(void)
{
double x = 2.0, y = 3.0;
printf("%lf raised to %lf is %lf\n", x, y, pow(x, y));
return 0;
}
函数名: pow10
功 能: 指数函数(10的p次方)
用 法: double pow10(int p);
程序例:
#include
#include
int main(void)
{
double p = 3.0;
printf("Ten raised to %lf is %lf\n", p, pow10(p));
return 0;
}
当然是math.h呀,kwgrg给出的原型太有意思,C中函数还可以重载倒是第一次听说
extern float pow(float x, float y)
用法:#include math.h
功能:计算x的y次幂。
说明:x应大于零,返回幂指数的结果。
举例:
// pow.c
#include stdlib.h
#include math.h
#include conio.h
void main()
{
printf("4^5=%f",pow(4.,5.));
getchar();
}
相关函数:pow10
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
设置四个变量左边界l,右边界r,上边界u,下边界d。每调用一次递归在二维数组中存一层数据,然后把l加1,r减1,u加1,d减1。lr为递归出口。代码如下:
#include stdio.h
int b[100][100];
void fz(int l,int r,int u,int d,int v,int n)
{
int x,y,i,j,k,m;
if(lr)
for (x=0;xn;x++)
{
for (y=0;yn;y++)
printf("%4d",b[x][y]);
printf("\n");
}
while(l=r)
{
for (i=l;i=r;i++) b[u][i]=v++;
for (k=u+1;kd;k++) b[k][r]=v++;
for (j=r;jl;j--) b[d][j]=v++;
for (m=d;mu;m--) b[m][l]=v++;
return fz(l+1,r-1,u+1,d-1,v,n);
}
}
int main()
{
int n;
scanf("%d",n);
fz(0,n-1,0,n-1,1,n);
return 0;
}