C语言I博客作业04

作业头

这个作业属于哪个课程 C语言程序设计II
这个作业的要求在哪里 C语言I作业04
我在这门课程的目标是 学好C语言为学习以后的语言做准备
这个作业在那个具体方面帮助我实现目标 对for语句的运用,运算细节(求小数),思考能力等
参考文献 《C语言程序设计I》,《C Primer Plus》,Dev-c++.

1.PTA实验作业

1.1求平方与倒数序列的部分和.

1.题目内容描述:

  • 本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m2+1/m+(m+1)2+1/(m+1)+······+n^2+1/n.

1.1.1实验代码截图.

1.1.2数据处理.

1.数据表达:

  • (1).定义了m,n两个正整数,都是整型,还有双精度浮点型sum(求和)。
  • (2).运用了math.h输出头文件,用了scanf()函数,for()语句。
    2.数据处理:
  • (1).输入m,n,scanf("%d %d",&m, &n).
  • (2).循环条件for(m=m;m<=n;m++).
  • (3).运算处理sum=sum+pow(m,2)+1.0/m.
  • (4).输出函数printf("sum = %lf",sum).

1.1.3 造测试数据.

输入数据 输出数据 说明
2 8 204.717857 m,n<10均为为正整数
50 60 33385.200665 m,n<=60均为正整数
100 200 2358350.700653 m,n<=200均为正整数

1.1.4PTA提交列表及说明.


编译错误:开始时没有考虑到在&m&n之间要用“,”所以导致了编译错误.
解决方法:查阅书籍发现调用scanf()函数输入多个数据时,需要用“,”分开&n&m等.

1.2求交错序列前N项和.

1.题目内容描述:

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

1.2.1实验代码截图.

1.2.2数据处理.

1.数据表达:

  • (1).定义了flag(用做符号的交替),n(输入的正整数),变量i,都是整型,
  • (2).还有sum(求和),item变量,是双精度浮点型。还用了scanf()函数,for()语句。
    2.数据处理:
  • (1).输入正整数n,scanf("%d",&n).
  • (2).循环条件for(i=1;i <= n;i++).
  • (3).输出函数printf("%.3f",sum).
  • (4).运算处理item=flag(1.0i/(2*i-1));sum=sum+item; flag=-flag.

1.2.3 造测试数据.

输入数据 输出数据 说明
1 1.000 10>n为正整数
68 0.391 10<n<100为正整数
168 0.392 100<n<200为正整数
668 0.393 200<n<1000为正整数
1086 0.393 1000<n<1100为正整数

1.2.4PTA提交列表及说明.


答案错误:做题不认真,我在printf()内输入了Enter sum = %.3f,导致答案错误,
解决方法:在题目中说明了输出的值只为一个数,后面把Enter sum去掉了,就正确了.

2.代码互评.

1.同学代码截图:

2.同学代码截图:

3.自己代码截图:

与第一位同学的区别:

  • 1.在增值方面不同,她的代码是i=i+2,而我的是i++,她的代码在后面的编写中要简单一些,
    易懂,也很简洁,而我的代码在前面(赋值)的编写中要简单一些.
  • 2.在定义上我定义输入的数为numble,而她是N,可见她的要简洁一些,我的易懂一些.
  • 3.还有一个小细节,她在保留六位有效小数是%.6f,这当然没有错,而我的是%lf,都是一个意思.
    与第二位同学的区别:
  • 1.最主要就是在格式说明不同.
  • 2.同学是用%f,而我是用%lf,其实也没有太大的区别,区别是
  • (1) 代表数据类型不同,%f(float)是单精度浮点型,%lf(double)是双精度浮点型.
  • (2) 有效数字位数不同.单精度浮点数有效数字保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位。也就是说双精度浮点型更加准确.
  • (3)所能表示数的范围不同.单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38,双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308.
  • (4).在程序中处理速度不同,一般来说,CPU处理单精度浮点型数要比双精度浮点型数要快. 但读入浮点数用%lf,输出浮点数用%f.
    来自搜索引擎,第二点看不懂

3.学习总结.

3.1学习进度条.

时间 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 16个小时 28行 学到了编写代码的基本知识,如:顺序结构 符号(英)与(汉)混淆
第二周 20个小时 20行 学到了运算符,赋值 主要是赋值,在printf中“="左右要空格其他就不用了
第三周 23个小时 98行 学到了分支结构(if-else),&&,%,幂运算pow,平方根sqrt 对一些新知识不能马上运用
第四周 16个小时 70行 学到了for语句,求小数点(要求用1.0来除以···),还有该变正负号知识 现在没问题了,在scanf()内&n&m之间要用“,"

3.2累计代码行数和博客字数.

3.3学习内容总结和感悟.

3.3.1学习内容总结.

本周学习了很多知识如:

  • 1. for() 循环语句、i++、 for(i=1;i<=n;i++) i从1开始循环到小于等于n,其中i++为先赋值i后再加1.
  • 2.flag正负号的转换、 flag = -flag.
  • 3.求精确小数点,在计算机除法中要用有小数点的数除以一个数才能有精确小数点.
  • 4.用计算机可以解决(1). 序列和mˇ2​​+1/m+(m+1)ˇ​2+1/(m+1)+⋯+nˇ​2​​+1/n等等数学求和问题.

3.3.2学习体会.

1.感觉每次写PTA作业都是先慢后快的,做每一个题都会有很多需要注意的地方,做完了第一题,后面要注意的也都会注意了.也就是从开时每天晚上写到十一点半到十二点写不出的难受,到后面灵感来了洗一个澡后一下就写出一个题的开心,慢慢地培养了对C的兴趣,感觉自己慢慢地从一个C小白变得越来越懂了,这是我很开心的事情,相信这也是老师为什么要布置这么多作业的原因.
2.我想对琛哥说的是,求序列 1 + 1/2 + 1/3 + ... 的前N项之和跟求序列 1 + 1/3 + 1/5 + ... 的前N项之和差不多,所以我想这两个题只出一个就行了,再另外出一个有特色的题.

原文地址:https://www.cnblogs.com/chenyiAndy/p/11695840.html