c语音程序填空:输入一个正整数n。计算序列2/1+3/2+5/3+8/5+…的前n项之和。该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。 【输入样例】 20 【输出样例】 32.66 【程序代码】 #include <stdio.h> int main(void) { int i, n, a, b, t; 【____________】 res = 0; scanf("%d", &n); a = 2; b = 1; for(i = 1; i <= n; i++) { res =【____________】; t = a; a = a + b; 【____________】 ; } printf("%.2f", res); return 0; }
时间: 2024-01-17 16:04:52 浏览: 74
这是一个比较典型的递推问题,我们可以用循环来实现。下面是代码,把空白处的代码填上即可。
```c
#include <stdio.h>
int main(void) {
int i, n, a, b, t;
float res = 0;
scanf("%d", &n);
a = 2;
b = 1;
for(i = 1; i <= n; i++) {
res += 1.0 * a / b;
t = a;
a = a + b;
b = t;
}
printf("%.2f", res);
return 0;
}
```
这段代码的思路是,先输入n,然后初始化分子a=2,分母b=1。接着用循环计算每一项的值,并累加到res中。最后输出res即为所求。
相关问题
程序文件名:CTK38.c 一、要求说明: 1. 请点击出题按钮,下载并打开试题文件 CTK.c ;按试题要求进行操作。 2. 该程序中标有“【____________】”为需要程序填空的标志,考生可以把题干中的代码在编译器中编辑,根据程序的功能,在填空标志处填入合适的代码(覆盖填空标志),并调试运行程序; 3. 完成相关操作后,按本题的程序文件名进行保存并关闭文件;再按本页界面的上传向导选择试题文件,点击【上传到服务器评分】。 二、注意事项: 1. 在填空时,需删除填空标志“【____________】”、确保不会产生语法错误,再根据程序功能填充;调试运行程序。 2. 不得加行、减行、加句、减句。 三、程序功能: 输入一个正整数n。计算序列2/1+3/2+5/3+8/5+…的前n项之和。该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。 【输入样例】 20 【输出样例】 32.66
```c
#include<stdio.h>
int main()
{
int i,n;
double a=2,b=1,sum=0,t;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum+=a/b;
t=a;
a=a+b;
b=t;
}
printf("%.2lf",sum);
return 0;
}
```
【程序设计】 --------------------------------------------------------- 题目:请编写main函数,输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个正整数 n,输出 2/1+3/2+5/3+8/5+……前n项之和,保留2位小数。 (该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子) 要求:采用列表函数完成 例如:括号内是说明 输入: 3 (repeat=3) 1 (n=1) 5 (n=5) 20 (n=20) 输出: sum = 2.00 (第1项是2.00) sum = 8.39 (前5项的和是8.39) sum = 32.66 (前20项的和是32.66) --------------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它函数中的 任何内容,仅在函数的注释标志之间填入所编写的若干语句。 ------------------------------------------------------''' def main(): repeat=int(input("【请输入一个正整数 repeat:】")) for i in range(1,repeat+1): n=int(input("【请输入一个正整数 n:】")) a=2 #序列从第2项 b=1 #分母 list=[] #**********Program********** #********** End ********** print('【sum=】%.2f' %sum(list)) if __name__ == '__main__': main()
以下是填空部分的代码:
```python
def main():
repeat=int(input("【请输入一个正整数 repeat:】"))
for i in range(1,repeat+1):
n=int(input("【请输入一个正整数 n:】"))
a=2 #序列从第2项
b=1 #分母
list=[]
for j in range(n):
list.append(a/b)
a,b=a+b,a
print('【sum=】%.2f' %sum(list))
if __name__ == '__main__':
main()
```
解析:
根据题目要求,我们需要用列表函数计算序列的前n项之和。我们可以通过循环来计算序列的每一项,然后将每一项添加到列表中,最后用sum函数求和即可。在循环中,我们需要用到两个变量a和b来分别表示分子和分母,每次迭代时,我们改变a和b的值,并将a/b添加到列表中。
阅读全文