c语言编写函数,求整数x的n次幂。n为正整数,x和n在主函数中输入,计算结果在主函数中输出。
时间: 2024-10-22 12:16:01 浏览: 37
在C语言中,你可以通过递归或循环的方式来编写一个求整数幂的函数。这里给出两种方法的示例:
### 递归版本(power_by_recursion.c)
```c
#include <stdio.h>
// 函数声明,接受两个整数作为参数
int power(int base, int exponent);
int main() {
int x, n;
printf("请输入底数x: ");
scanf("%d", &x);
printf("请输入指数n: ");
scanf("%d", &n);
// 调用函数并打印结果
int result = power(x, n);
printf("%d 的 %d 次方等于 %d\n", x, n, result);
return 0;
}
// 递归实现的power函数
int power(int base, int exponent) {
if (exponent == 0) // 如果指数为0,返回1
return 1;
else if (exponent > 0)
return base * power(base, exponent - 1); // 递归调用
else // 如果指数为负,则先取倒数再乘
return 1 / power(base, -exponent); // 递归调用
}
```
### 循环版本(power_by_loop.c)
```c
#include <stdio.h>
// 函数声明,接受两个整数作为参数
int power(int base, int exponent);
int main() {
int x, n;
printf("请输入底数x: ");
scanf("%d", &x);
printf("请输入指数n: ");
scanf("%d", &n);
// 调用函数并打印结果
int result = power(x, n);
printf("%d 的 %d 次方等于 %d\n", x, n, result);
return 0;
}
// 使用循环实现的power函数
int power(int base, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= base;
}
return result;
}
```
这两种方法都可以求得整数的幂,选择哪种取决于对递归的理解程度和个人喜好,因为递归可能会导致栈溢出对于大值的幂运算。
阅读全文