C语言用while循环输入实数x和正整数n,计算x的n次方
时间: 2023-11-27 19:50:52 浏览: 334
可以使用标准库函数 pow() 来计算实数的 n 次方,但是这题要求使用 while 循环来实现。可以考虑使用一个累乘器变量来记录 x 的 n 次方,每次循环将其乘上 x,然后将 n 减 1,直到 n 减为 0。
代码如下:
```c
#include <stdio.h>
int main() {
double x, ans = 1;
int n;
printf("请输入实数x和正整数n:");
scanf("%lf %d", &x, &n);
while (n > 0) {
ans *= x;
n--;
}
printf("%.2lf 的 %d 次方等于 %.2lf\n", x, n, ans);
return 0;
}
```
需要注意的是,由于使用了累乘器变量,所以在每次循环中都要将其乘上 x,否则答案会出错。另外,输出时用的是 n 而非输入的数,因为 n 在循环中已经被减为了 0。
相关问题
C语言输入实数x和正整数n,计算x的n次方
可以使用C语言中的pow函数来进行计算,pow函数的原型为:
```c
double pow(double x, double y);
```
其中x为底数,y为指数,函数的返回值为x的y次方。
但是需要注意的是,pow函数返回的是double类型的数据,如果需要将结果输出为整数,需要进行强制类型转换。
下面是一个示例代码:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double x;
int n;
printf("请输入底数x和指数n:");
scanf("%lf %d", &x, &n);
double result = pow(x, n);
printf("%.0f的%d次方为%.0f\n", x, n, result);
return 0;
}
```
运行程序后,可以输入底数x和指数n,程序会计算x的n次方并输出结果。
c语言编程输入实数x和正整数n,递归方法实现计算x的n次方。
题目要求使用递归方法实现计算实数x的正整数n次方,可以按照以下步骤编写代码:
```c
#include <stdio.h>
// 递归函数实现计算x的n次方
double power(double x, int n){
if (n == 0) { // 边界条件,n为0时,任何数的0次方都等于1
return 1.0;
} else if (n > 0) { // n为正整数时
return x * power(x, n - 1); // x的n次方等于x*x的n-1次方
} else { // n为负整数时
return 1.0 / power(x, -n); // x的-n次方等于1/x的n次方
}
}
int main(){
double x; // 实数x
int n; // 正整数n
printf("请输入实数x和正整数n:");
scanf("%lf %d", &x, &n);
printf("%.2lf的%d次方为:%.2lf\n", x, n, power(x, n));
return 0;
}
```
以上代码中,递归函数`power`接收两个参数,实数`x`和正整数`n`,根据题目要求,当`n`为0时,任何数的0次方都等于1,此时递归返回1.0;当`n`为正整数时,递归调用`power`函数计算x的n-1次方,然后将结果乘以x,得到x的n次方;当`n`为负整数时,递归调用`power`函数计算1/x的-n次方,得到x的-n次方。
在主函数`main`中,首先读入实数`x`和正整数`n`,然后调用`power`函数计算x的n次方,并输出结果。
阅读全文