| 这个作业属于那个课程 | C语言程序设计II |
| 这个作业要求在哪里 | 作业链接 |
| 我在这个课程的目标是 | 能开发一些小程序 |
| 这个作业在那个具体方面帮助我实现目标 | 让我能更熟练的掌握while和do-while语句 |
| 参考文献 | 【C语言程序设计】和【C语言程序设计实验与习题指导】 |
1.PTA实验作业(20分/题)

1.1 题目名1
7-1 求整数的位数及各位数字之和 (15 分)
对于给定的正整数N,求它的位数及其各位数字之和。
数据表达:用了N,sum,x,y4个整型变量,y用来记输入数字的位数,sum输出各位数字之和
数据处理:
输入(所给的整数)
while(N不等于0)给定循环条件
x=N%10;(求各位数字)
N=N/10;(求整数有几位数)
sum=sum+x;(求各位数字之和)
y++;(记录循环次数也相当于记录共有几位数字)
1.1.2实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
| 321 | 3 6 | 题目数据 |
| 456 | 3 15 | 跟题目有关数据 |
| 520 | 3 7 | 我爱你 |
1.1.4 PTA提交列表及说明

1.答案错误:没有给定y=0导致答案不对
2.答案正确:。。。
1.2 题目2
7-2 韩信点兵 (10 分)
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。
1.2.1数据处理
数据表达:没有定义变量
数据处理:
for(循环次数等于士兵数)
if(筛选符合报数条件的数字)
输出士兵数
1.2.2实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
| 无输入 | 2111 | 唯一输出 |
1.2.4 PTA提交列表及说明

1.编译错误:一开始没看懂题目,编的代码完全和题目没关系
2.运行超时:for语句后面括号里少了一个分号
3.答案正确:。。。
2.代码互评(5分)
同学代码截图
自己代码截图
1.我们所使用的整型变量不同
2.很明显,同学的代码比我的长,因为他用来判断是否为闰年的if-else语句用在switch语句外面,而且我用在switch语句里面
3.学习总结(15分)
3.1 学习进度条(5分)
| 日期 | 这周所花的时间 | 代码行 | 学到的知识简介 | 目前比较迷惑的问题 |
| 10/7-10/13 | 12h | 92 | if-else语句、格式化输入语句scanf(),以及常用的数学库函数的使用 | 很多记不住,总是粗心 |
| 10/14-10/20 | 8h | 100 | for循环语句的使用 | 整型变量和双精度浮点变量的区别 |
| 10/21--10/27 | 9h | 84 | 定义函数及使用 | 段错误虽然搜索了,但是还是不太理解 |
| 10/28--11/3 | 10h | 134 | 四则运算 | 看到很多不懂的公式 |
| 11/4--11/10 | 12h | 125 | switch语句的使用 | 对switch语句的使用一点也不熟练 |
| 11/11--11/17 | 11h | 78 | while和do-while语句 | 有时候看不懂题目很头疼 |
3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结

3.3.2 学习体会
这周学习了while和do-while语句,其实老师早在之前就跟我们讲过while语句,所以这次上课感觉很容易,对while语句也更加熟练了,do-while是新知识,但是和while的使用差别不大,很容易上手,老师也告诉我们什么时候使用for和什么时候使用while。总的来说这一周学习的知道都吸收了,哈哈,所以是很开心的。