第六周编程总结

题目1. 求N分之一序列前N项和

本题要求编写程序,计算序列 1 + 1/2 + 1/3 + ... 的前N项之和

1).实验代码

#include<stdio.h>
int main()
{
  int N,i;  
  double sum;
  scanf("%d",&N);
  sum=0;                        //初始化sum
  for(i=1;i<=N;i++)            //累加i的值
  sum+=1.0/i;                 //累加求和
  printf("sum = %.6f",sum);
  return 0;
}

2). 设计思路

第一步:定义变量
第二步:输入变量
第三步:调用for语句
第四步:累加求和
第五步:输出答案

3).本题调试过程碰到的问题及解决方法

问题:计算的答案错误
解决方法:累加求和时将1更改为1.0

4).运行结果截图

题目2. 求奇数分之一序列前N项和

本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。

1)实验代码

   #include<stdio.h>
int main()
{
  int N,i;
  double sum;
  scanf("%d",&N);
  sum=0;                    //初始化sum
  for(i=1;i<=N;i++)           //累加i的值
      sum+=1.0/(2*i-1);      //累加求和      
  printf("sum = %.6f",sum);  
  return 0;
}

2).设计思路

第一步:定义变量
第二步:输入实数
第三步:调用for语句
第四步:累加求和
第五步:输出答案

3).本题调试过程碰到的问题及解决方法

问题:分式的分母错误
解决方法:更正分母

4).运行结果截图

题目3. 求简单交错序列前N项和

本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。

1).实验代码

#include<stdio.h>
#include<math.h>
int main()
{
  int N,i,y,x;
  double d,sum;              //d为每一项的值,sum为和
  scanf("%d",&N);
  x=1;                         // 初始化x,y,sum
  y=1;
   sum=0;            
  for(i=1;i<=N;i++){        //累加i的值
    d=x*1.0/y;             //计算每一项的值
    sum+=d;             //累加求和
    y+=3;
    x=-x;               //改变符号,为下次循环做准备    
}  
  printf("sum = %.3f",sum);  
  return 0;  
}

2).设计思路

第一步:定义变量
第二步:调用for语句
第三步:计算每一项的值
第四步:累加求和
第五步:输出答案

3).本题调试过程碰到的问题及解决方法

问题:变量没有进行初始化
解决方法:将变量进行初始化

4).运行结果截图

题目4. 求平方与倒数序列的部分和

本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m​2​​+1/m+(m+1)​2​​+1/(m+1)+⋯+n​2​​+1/n。

1).实验代码

#include<stdio.h>
#include<math.h>
int main()
{
  int m,n,i;          
  double sum;  
  scanf("%d %d",&m,&n);               //输入整数m,n
sum=0;
  for(i=m;i<=n;i++)                 //累加i的值
  {    
    sum+=pow(i,2)+1.0/i;          //累加求和
  }
  printf("sum = %.6f",sum);
  return 0;  
}

2).设计思路

第一步:定义变量
第二步:输入变量
第三步:调用for语句
第四步:累加求和
第五步:输出答案

3).本题调试过程碰到的问题及解决方法


问题:变量初始化位置输入错误
解决方法:将初始化语句放在for语句外

4).运行结果截图

题目5. 求交错序列前N项和

本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。

1).实验代码

#include<stdio.h>
int main()
{
  int m,N,i,f,d;                 
  double y,sum;                 //y为每一项的值,sum为和
  scanf("%d",&N);
  sum=0;                        //初始sum,f,d,m
  f=1;                     
  d=1;
  m=1;
  for(i=1;i<=N;i++){              //累加i的值
    y=f*m*1.0/d;                 //计算每项的值
    sum+=y;                     //将每项累加
    m++;
    d+=2;      
    f=-f;                     //改变符号,为下次循环做准备
  }
  printf("%.3f",sum);
  return 0;
}

2).设计思路

第一步:定义变量
第二步:调用for语句
第三步:计算每项的值
第四步:累加求和
第五步:输出答案

3).本题调试过程碰到的问题及解决方法

问题:输出格式错误
解决方法:按输出样例重新输出

4).运行结果截图

posted @ 2018-12-22 11:42  孙笑川6324  阅读(1331)  评论(0编辑  收藏  举报
1 2 3