C语言!作业02

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-4
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2020-4/homework/11451
这个作业的目标 掌握使用for循环语句实现指定次数的循环程序设计
学号 20209202

1.PTA实验作业(15分/题)

从PTA题目集中选出3个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题2分。

1.1 求简单交错序列前N项和 (15分)

题目内容描述:本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。

      输出格式:
      在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范 
      围。

      输入样例:
      10
      输出样例:

      sum = 0.819

1.1.1实验代码截图

1.1.2数据处理

介绍实现本题过程中,你的数据表达、数据处理是怎么做的。

数据表达:所用变量:i,k,N,flag,sum;这些变量的值的来源:N是自定义的,i是每循环一次后在原有的基础上加1,k=1 + 3 * (i - 1),flag=-flag,sum = sum + flag * 1.0
/ k;类型:整型,双精度浮点型。
数据处理:数据用到的表达式:k=1 + 3 * (i - 1);sum = sum + flag * 1.0 / k;flag=-flag;流程结构:循环结构。

1.1.3 PTA提交列表及说明


1.将sum = sum + flag * 1.0 / [1 + 3 * (i - 1)]变换了一下,定义了一个k,并将表达式改成k=1 + 3 * (i - 1);sum = sum + flag * 1.0 / k答案才正确

1.2 求分数序列前N项和 (15分)

题目内容描述:本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

     输入格式:
     输入在一行中给出一个正整数N。

     输出格式:
     在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。

     输入样例:
     20
     输出样例:
     32.66

1.2.1 实验代码截图

1.2.2 数据处理

介绍实现本题过程中,你的数据表达、数据处理是怎么做的。

数据表达:所用变量:N,i,a,b,c,d,sum;这些变量的值的来源:N是自定义的,i是每循环一次后在原有的基础上加1,d=b;c=a + d;b=a;a=c;sum=sum + a / b;类型: 整型,双精度浮点型。
数据处理:数据用到的表达式: d=b;c=a + d;b=a;a=c;sum=sum + a / b;流程结构: 选择结构、循环结构。

1.2.3 PTA提交列表及说明

根据PTA提交列表,简要描述调试程序碰到的问题及解决办法。

2.阅读代码(-5——5分)

找一份优秀代码,理解代码功能,并讲出你所选代码有点及可以学习的地方。
来源:https://www.nowcoder.com/ta/acm-solutions?query=&asc=true&order=&page=2
链接:https://www.nowcoder.com/ta/acm-solutions/review?tpId=20&tqId=11234&query=&asc=true&order=&page=8
问答题:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
输入描述
第一行是测试数据
输出描述
对输入的每组数据M和N,用一行输出相应的K。
输入例子
1
7 3
输出例子
8

 #include<stdio.h>
 int fun 
 {
     if(m==0||n==1)
         return 1; 
     if(n>m)
         return fun(m,m);
     else
         return fun(m,n-1)+fun(m-n,n);
 }
 int main()
 {
     int T,m,n;
     scanf("%d",&T);
     while(T--)
     {
         scanf("%d%d",&m,&n);
         printf("%d
",fun(m,n));
     }
 }

此代码功能:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
学习的地方:认识了fun函数,C语言中,fun函数是用调用主函数的。它是指用来定义一个函数或是方法,这版样在引用权时可以用fun表示。比如fun(int x,y),
fun(int x,y) 有上面的出现,必然在主函数里有调它,fun没有其它意思,只是在调时用到这个单词,上面的意思是调用主函数中的数值。if(m0||n1)中
的“||”表示“或”的意思。while(T--)中,T--是自减运算,是每次T自身减1,while(T--)就是当T自身减到0就退出循环。

3.学习总结(15分)

3.1 学习进度条(5分)

周|日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题
|--|--|--|--|
第三周|4天|156|for语句|在综合表达式中,不知道为什么不能用"[ ]"

3.2 累积代码行和博客字数(5分)

时间 博客字数 代码行数
第一周 638 12
第二周 562 07
第三周 2058 156


3.3 学习感悟(5分)
1.感觉题目越来越难了,要花费更多的时间才能解决,但在通过自己一步一步解决问题的过程中的感觉真的很爽;
2.在写一些逻辑性比较强的代码时,不要一股脑的去编写,要把思绪理清楚再写;
3.对for语句越来越熟练了;

原文地址:https://www.cnblogs.com/hvhghjjy/p/14269142.html