C语言中计算X的N次方,不能用POW函数

来源:百度知道 编辑:UC知道 时间:2024/06/14 01:05:00
这是我写的程序
#include <stdio.h>
int main(void)
{
int i, n;
int repeat, ri;
double mypow, x;

scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf%d", &x, &n);
for(i=0;i<=n;i=i+1)
mypow=x*x;
printf("%.2f\n",mypow);

}

}

让X=2时,不管N是多少,结果都是4 怎么回事啊?

mypow每次赋值都是x的平方当然这样啦,你可以把
for(i=0;i<=n;i=i+1)变成
for(i=0,mypow=x;i<=n;i=i+1);然后把
mypow=x*x;改成mypow*=x;应该行了吧

你搞笑啊,为什么要循环读取呢?
#include <stdio.h>
int main(void)
{
int n,i;
double mypow, x;

scanf("%f%d", &x,&n);
for(i = 1;i <= repeat; i++){
mypow=x*mypow;
}
printf("%.2f\n",mypow);

}

}

#include <stdio.h>
int main(void)
{
int i, n;
int repeat, ri;
double mypow = 1.0, x;

scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf%d", &x, &n);
for(i=1;i<=n;i=i+1)
mypow=mypow*x;
printf("%.2f\n",mypow);

}

}
mypow=mypow*x;这一句,,,看一下,理解理解

运行一下 试试
#include <stdio.h>
void main(void)
{
int n,i;
float mypow=1.0, x;