写了一个求x的n次方的C程序,结果就是不对!

来源:百度知道 编辑:UC知道 时间:2024/09/23 21:32:09
#include<stdio.h>
main()
{int x,n;
float power(int,int);
scanf("%d%d",&x,&n);
printf("The result is:%6.2f",power(x,n));
}
float power(int x,int n)
{ int i;
float m;
for(i=1,m=1;i<=n;i++)
m=m*n;
return m;
}

这结果怎么可能对呢?....
m=m*n;这地方显然是乘以x么,你要求的是x的n次方...应该是m=m*x;啊,而且m最好为int不需要float x的n次方怎么也不能是小数去..是int就行了.

又现成的函数可以用 求X的N次方

加这个头
#include "math.h"

c = pow(x,n);

pow 即是求X的N次方

#include<stdio.h>

main()

{
int x,n;
float power(int,int);
scanf("%d%d",&x,&n);
printf("The result is:%6.2f",power(x,n));
}
float power(int x,int n)
{ int i;
float m=1;
for(i=1;i<=n;i++)
m=m*x;
return m;
}

我给你您改了一下,可以了

#include<stdio.h>
void main()
{float x,n;
float power(float,float);
scanf("%f%f",&x,&n);
printf("The result is:%6.2f",power(x,n));
}
float power(float x,float n)
{ int i;
float m;
m=x;
for(i=1;i<n;i++)
x=x*m;
return x;
}
改好了

算法错了=。=