C语言I博客作业08
| 问题 | 答案 |
|---|---|
| 这个作业属于那个课程 | C语言程序设计II |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-3/homework/9982 |
| 我在这个课程的目标是 | 学习使用while和do-while结构解题 |
| 这个作业在那个具体方面帮助我实现目标 | 主要在写循环编程题之类的 |
| 参考文献 | C语言程序设计 |
1.PTA实验作业

1.1 题目1:对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10的9次方正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
1.1.1 数据处理
- 数据表达:使用了整形变量n, count, sum三个变量。
- 数据处理:数据使用的表达式:sum+=n%10;n/=10;count++;结构式:while循环语句。
- 伪代码:定义变量;while语句(条件;输出N的位数及其各位数字之和;两个输出值中间用一个空格隔开;返回0。
1.1.2 实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 321 | 3 6 | 位数为3 各位数字之和为6 |
| 6789 | 4 30 | 位数为4 各位数字之和为30 |
| 333999 | 6 36 | 位数为6 各位数字之和为36 |
| 985211 | 6 21 | 位数为6 各位数字之和为21 |
1.1.4 PTA提交列表及说明

- Q1:看到运行超时有点懵,还没有遇到过这种情况;
- A1:仔细发现是count与sum关系没有写明白。
1.2 题目2:在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。
1.2.1 数据处理
- 数据表达:使用了整形变量i,控制循环。
- 数据处理:数据用到的表达式:(i%51)&&(i%65)&&(i%74)&&(i%1110)和流程结构:使用for语句。
- 伪代码:定义变量i,使用for循环查看循环次数,使用for语句,输出循环次数,返回0。
1.2.2 实验代码截图

1.2.3 造测试数据
输入格式:
本题无输入
输出格式:
输出韩信至少拥有的士兵人数。
1.2.4 PTA提交列表及说明

本题的难点在于将变量i的循环满足题目的要求,如果写明白就可以到得到正确答案,即(i%51)&&(i%65)&&(i%74)&&(i%1110)。
2.代码互评
同学代码截图
(来自软件三班童英俊同学的代码)

自己代码截图

代码比较
- 不同点:他使用四个整形变量,我使用五个变量,有所不同。
- 相同点:都使用了if与while语句,以及break语句。
同学代码截图
(来自软件三班李志玉同学的代码)

自己代码截图

代码比较
- 不同点:她使用了digits变量,与我的变量不同。
- 相同点:使用的语法大致相同,都使用了while语句。
3.学习总结
3.1 学习进度条
| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 第一周 | 四个小时 | 40行 | 初步接触编程与c语言,在电脑上显示Hello World | 对所有编程的事物都很懵 |
| 第二周 | 十二个小时 | 65行 | 了解MinGW-w64安装教程并完成了GCC编译器的安装,并用 MinGW-w64 来编译 C程序 | 不是很熟练地掌握安装和编译 |
| 第三周 | 十五个小时 | 100行 | 练习对表格的使用和PTA里的题目,对编程开始提高速度和准确性 | 有些难的编程题目是真的很难做动 |
| 10.14~10.20 | 20小时 | 150行 | 学习指定次数的循环程序设计,以及power的用法 | 循环程序的题型很多,有些也比较复杂,不是很容易理解 |
| 10.20~10.27 | 20小时 | 180行 | 能模仿编程,认识函数,编辑思维导图 | 用C语言编写程序生成乘方表与阶乘表没有很掌握好 |
| 第十周 | 32小时 | 526行 | 多分支结构、字符型数据类型和逻辑运算符 | 循环类的题目没有完全掌握 |
| 第十一周 | 40小时 | 760行 | 学会用switch语句 | 对于break语句的一般的三种使用方法没有运会得当 |
| 第十二周 | 42小时 | 805行 | 使用while和do-while结构解决问题 | 对新学习的循环语句没有掌握好 |
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会
这周又学习了两种新的循环语句,编程题目的难度也随着慢慢加大,其实有很多的语法没有弄明白;较上周比较,我完成作业的效率提上来了,态度也变得积极起来,现在的空余时间变得越来越少,感觉自己学到现在还是比较差的,每次上课跟着老师的节奏还是比较费力的,希望自己能在预习上多下功夫,毕竟我可不想挂科啊。

浙公网安备 33010602011771号