用while实现编程求1+1/2+1/3+…+1/n(n的值由键盘输入)
时间: 2023-11-20 09:07:58 浏览: 274
以下是使用while循环实现编程求1+1/2+1/3+…+1/n的代码:
```c
#include <stdio.h>
int main() {
int i, n;
double s;
i = 1;
s = 0;
printf("请输入一个正整数(赋给n):");
scanf("%d", &n);
while (i <= n) {
s = s + 1.0 / i;
i++;
}
printf("%f\n",s);
return 0;
}
```
相关问题
用函数循环调用的方式编程求1+(1+2)+...+(1+2+n),其中n值由键盘输入,分别用for和while语句实现
使用for循环实现:
```python
def sum_for(n):
sum = 0
for i in range(1, n+1):
for j in range(1, i+2):
sum += j
return sum
```
使用while循环实现:
```python
def sum_while(n):
sum = 0
i = 1
while i <= n:
j = 1
while j <= i+1:
sum += j
j += 1
i += 1
return sum
```
其中,sum变量用于记录求和的结果,i和j用于循环计数,range函数用来生成指定区间的整数序列。
已知公式: π /2=1+1/3+1/3* 2/5+1/3*2/5*3/7+.., 用c语言编程求π的值。从键盘输入π小数部分的有效位数n,要求所得π值误差小于10的负n次方.
以下是用 C 语言编写的程序,可以根据输入的小数位数 n 来计算 π 的值,使得误差小于 10 的负 n 次方:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n, k;
double pi, term, error;
printf("Enter the number of decimal places in pi: ");
scanf("%d", &n);
k = 1;
pi = 1.0;
term = 1.0;
error = pow(10.0, -n);
while (fabs(term) >= error) {
term *= (double) k / (2 * k + 1);
pi += term;
k++;
}
pi *= 2.0;
printf("pi = %.*f\n", n, pi);
return 0;
}
```
程序中,我们先输入小数位数 n,然后使用 while 循环计算 π 的值,直到误差小于 10 的负 n 次方为止。在每次循环中,我们计算当前的项,并将其加入到 π 中。最后,我们将 π 乘以 2,以得到正确的值。
注意,在计算误差时,我们使用了 pow 函数,它可以计算一个数的幂。在这里,我们使用 pow(10.0, -n) 计算 10 的负 n 次方。
阅读全文