用C语言生成代码:输入一个小于等于30的正整数n,求1+1/2+1/3+...+1/n的和
时间: 2023-07-16 22:13:56 浏览: 159
以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int n;
double sum = 0.0;
printf("请输入一个小于等于30的正整数n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += 1.0 / i;
}
printf("1+1/2+1/3+...+1/%d的和为:%lf\n", n, sum);
return 0;
}
```
首先,我们声明了一个整型变量 `n` 和一个双精度浮点型变量 `sum`,分别用来存储输入的正整数和累加的和。
然后,我们通过 `scanf()` 函数获取用户输入的正整数,接着使用 `for` 循环从 1 开始依次累加每个分数的倒数,最后输出结果。注意,在计算每个分数的倒数时,我们需要将分子或分母中的一个转换为浮点型,以避免整数除法带来的误差。
如果你需要了解更多关于 C 语言的知识,可以参考 CSDN 上的相关文章和教程。
相关问题
输入一个正整数n,求第n小的质数。使用C语言
在C语言中,寻找第n小的质数通常涉及到一个名为“Sieve of Eratosthenes”的算法,用于生成一定范围内所有的质数。这是一个经典的效率较高的算法。以下是一个基本的示例代码,它会找出小于`n`的所有质数,然后返回第n个:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) {
return false;
}
}
return true;
}
int nth_prime(int n) {
int count = 0, current_num = 2;
while (count < n) {
if (is_prime(current_num)) {
++count;
if (count == n) {
return current_num;
}
}
++current_num;
}
return -1; // 如果n超出范围,返回-1(因为没有比n大的质数)
}
int main() {
int n;
printf("请输入一个正整数n: ");
scanf("%d", &n);
if (n > 0) {
int nth_prime_number = nth_prime(n);
if (nth_prime_number != -1) {
printf("第%d小的质数是: %d\n", n, nth_prime_number);
} else {
printf("错误: 没有第%d个质数。\n", n);
}
} else {
printf("错误: 请输入一个正整数。\n");
}
return 0;
}
```
这段代码首先检查输入是否为正整数,然后通过`is_prime`函数判断每个数字是否为质数,当找到第n个小的质数时,就立即返回结果。如果n超过了所有可用的质数,则返回-1表示找不到第n个质数。
用C语言写一个程序: 2 个正整数 a,b,a大于等于1,b小于等于10的9 输出 4行, 分别输出 a+b, a-b, a*b,a与b带余运算
好的,以下是用 C 语言编写的程序,可以实现您的要求:
```c
#include <stdio.h>
int main() {
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", a + b);
printf("%d\n", a - b);
printf("%d\n", a * b);
printf("%d\n", a % b);
return 0;
}
```
您可以将以上代码保存为一个 `.c` 文件,然后使用 C 语言编译器进行编译,生成可执行文件。运行可执行文件时,程序会要求您输入两个正整数 `a` 和 `b`,然后输出这两个数的加、减、乘、带余运算结果。注意,输入的 `a` 必须大于等于 1,`b` 必须小于等于 10 的 9 次方,否则程序可能会出现异常。
阅读全文