用while及do while分别实现,求表达式sum=1+1/2+1/3+...+1/n 的值,n由键盘输入。c语言
时间: 2024-12-13 15:19:58 浏览: 2
在C语言中,你可以使用`while`和`do-while`循环结合条件判断来计算这个无限序列的前n项和,直到达到精度限制或达到给定的n值。这里是一个简单的示例:
```c
#include <stdio.h>
double sum = 0;
int n;
// 使用while循环实现
void calculate_with_while() {
int i = 1;
printf("Enter a value for n: ");
scanf("%d", &n);
while (i <= n) {
sum += 1.0 / i;
i++;
}
printf("Sum of series up to %d terms is: %.9f\n", n, sum);
}
// 使用do-while循环实现
void calculate_with_dowhile() {
int i = 1;
double sum_temp = 0;
do {
sum_temp += 1.0 / i;
i++;
} while (i <= n);
// 要注意,在do-while里,我们需要先更新sum再检查条件
sum = sum_temp;
printf("Sum of series up to %d terms is: %.9f\n", n, sum);
}
int main() {
printf("Choose a method:\n1. While loop\n2. Do-While loop\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
calculate_with_while();
break;
case 2:
calculate_with_dowhile();
break;
default:
printf("Invalid choice. Exiting...\n");
return 1;
}
return 0;
}
```
在这个程序中,用户可以选择使用`while`或`do-while`循环来计算。每个函数内部都有对应的循环结构,用于累加序列的每一项。
阅读全文