zoukankan      html  css  js  c++  java
  • C语言I博客作业02

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

    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提交列表及说明

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

    • Q1:当看到编译错误后,回头再检查了一遍,觉得没什么问题
    • A1:将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提交列表,简要描述调试程序碰到的问题及解决办法。

    • Q1:答案出现错误
    • A1:试了很多遍后,发现表达式d=b;c=a + d;b=a;a=c;的顺序排错了,后将顺序调整后最终答案才正确

    1.3 求平方根序列前N项和 (15分)

    题目内容描述:本题要求编写程序,计算平方根序列√1+√​2+√3+⋯的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。

              输入格式:
              输入在一行中给出一个正整数N。
    
              输出格式:
              在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后两位。题目保证计算结果不超过双精度范围。
    
              输入样例:
              10
              输出样例:
              sum = 22.47
    

    1.3.1 实验代码截图

    1.3.2 数据处理

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

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

    1.3.3 PTA提交列表及说明

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

    • Q1:显示段错误
    • A1:发现犯了一个低级错误,变量名N面前缺了一个取地址运算符&
    • Q2:显示格式错误
    • A2:发现在输出语句的里面多按了一个空格,删除多余空格后才显示正确

    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(m==0||n==1)中 
               的“||”表示“或”的意思。while(T--)中,T--是自减运算,是每次T自身减1,while(T--)就是当T自身减到0就退出循环。
    

    3.学习总结(15分)

    3.1 学习进度条(5分)

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

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

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

    3.3 学习感悟(5分)

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

  • 相关阅读:
    hdu2328 Corporate Identity
    hdu1238 Substrings
    hdu4300 Clairewd’s message
    hdu3336 Count the string
    hdu2597 Simpsons’ Hidden Talents
    poj3080 Blue Jeans
    poj2752 Seek the Name, Seek the Fame
    poj2406 Power Strings
    hust1010 The Minimum Length
    hdu1358 Period
  • 原文地址:https://www.cnblogs.com/zhge/p/13940085.html
Copyright © 2011-2022 走看看