C语言程序设计(第三版)何钦铭著 习题4-3
题目
求序列和。
输入一个正整数n,
输出 2/1+3/2+5/3+8/5 +…的前n项之和,保留2位小数。
该序列从第2项起,
每一项的分子是前一项分子与分母的和,
分母是前一项的分子。
试编写相应程序。
分析过程
输入
条件:输入一个正整数n
输出
条件:输出 2/1+3/2+5/3+8/5 +…的前n项之和,保留2位小数
代码
#include <stdio.h>
#include <math.h>
int main () {
/*定义变量*/
int n; /*定义变量,存储输入的正整数n*/
double fenzi = 2.0; /*定义变量,每项分子*/
double fenmu = 1.0; /*定义变量,每项分母*/
double sum = 0; /*定义变量,计算结果和,初值为1*/
/*赋值*/
printf("请输入正整数n:\n"); /*输入提示*/
scanf("%d \n", &n); /*输入并赋给变量*/
/*计算*/
for(int i=1 ; i<=n ; i++){
sum += fenzi/fenmu;
int qian_fenmu = fenmu; /*需要单独存储,前一项分母,否则寻找不到*/
fenmu = fenzi; /*每项分母为前一项的分子*/
fenzi = fenzi + qian_fenmu; /*每项分子为前一项分子与分母之和*/
}
printf("前%d项和为:%.2lf \n", n, sum); /*输出计算结果*/
return 0;
}