C语言中M的N次方

C语言中M的N次方,不用POW函数完成,怎么写

在C语言中, M的N次方,可以有如下几种表示方法:

1、使用标准库函数的pow。形式为

pow(M,N);

使用pow函数需要引用头文件math.h, pow的参数和返回值类型都是double的,所以得到的是近似值。 

2、对于要得到精确值的,在C语言中并没有系统函数供使用,只能自己写函数来实现,参考代码如下:

int pow_int(int m, int n)
{
    int r=1,i;
    for(i = 0; i < n; i ++)//循环执行n次。
        r*=m;//每次乘一次m,结果即m的n次方。
    return r;//返回结果。
}

使用这种方式,要注意溢出,尤其是当n比较大的时候,很容易出现超出变量表示范围,导致溢出出现。 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-07-25
//修改了一下,底数和指数由用户输入.幂的结果用数组存储,计算后输出.

#include<stdio.h>

#define MAX 1000

void main()
{
int ar[MAX]={1};//存储幂的结果
int i, j, tmp;
int x,y;
int n=1; //统计位数
printf("输入幂的底数和指数(x,y):");
scanf ("%d,%d", &x, &y);
for(i=1;i<=y;i++) {
tmp=0;//存储进位值
for(j=0;j<n;j++) {
ar[j]=ar[j]*x+tmp;
tmp=ar[j]/10;
ar[j]=ar[j]%10;
}

while(tmp) {
n++;
ar[n-1]=tmp%10;
tmp/=10;
}
}
printf("\n%d的%d次幂等于", x, y);
for(i=n-1;i>=0;i--)
printf("%d", ar[i]);//从高位开始输出结果
printf(".\n");
}
第2个回答  2015-01-16
//这样就可以了,用一个for循环
//从屏幕输入m,n的值就可以了
#include<stdio.h>
int main(){
    int m,n,i,res=1;
    scanf("%d%d", &m, &n);
    for(i = 0; i<n; i++){
        res*=m;
    }
    printf("%d\n", res);
    return 0;
}

本回答被提问者采纳
第3个回答  2016-01-14
 C语言中计算某个数x的n次幂用pow函数。
功能:返回指定数字的指定次幂.
用法:pow (double x, double n);(将返回x的n次幂)
  示例:
  #include<math.h>
  #include<stdio.h>
  int main()
  {
  double x=2.0,y=3.0;
  printf("%lf的%l次幂是:%lf\n",x,y,pow(x,y));
  return 0;
  }
第4个回答  2015-01-16
include <stdio.h>
define M 5
void main() 

    int i,x=3,sum=1;
    for (i=0; i<M; ++i) {
        sum *= x;
    }
    printf("3的%d为:%d", M, sum);
}