C语言I博客作业08
1.本周教学内容&目标
第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。
2. 本周作业头
| 这个作业属于哪个课程 | C语言程序设计II |
|---|---|
| 这个作业要求在哪里 | 班级作业链接 |
| 我在这个课程的目标是 | 能够独自编程出一些优质的代码 |
| 这个作业在哪个具体方面帮助我实现目标 | 能够更加熟悉do while 的循环结构的使用 |
| 参考文献 | 《C语言程序设计》,PTA |
3. PTA实验作业
3.1排名:

3.2题目1:对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10的9次方的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
- 数据表达:变量N, sum, count为整型
- 数据处理:
int N,sum,count;//定义变量N,sum,count
while(N!=0){sum+=N%10;N=N/10;count++//while循环,取余取整然后相加
3.2.1 实验截图

3.2.2 测试数据表格
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 433 | 10 | 数位各个数字的和等于10 |
| 231 | 6 | 数位各个数字的和等于6 |
3.2.3PTA提交列表及说明

- 运行超时:多写了Enter N
- 答案错误:i!=0写成了i<1000000000
3.3题目2:
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。
- 数据表达:i为整型变量
- 数据处理:
int i;//定义变量i
for(i=1;;i++)//for循环,初始量i=1,每执行一次i+1
if((i%51)&&(i%65)&&(i%74)&&(i%1110))//循环体,循环条件,士兵数满足这四种报数方式
printf("%d",number);//输出士兵数number
3.3.1 实验截图

3.3.2 测试数据表格
无测试数据
3.3.3PTA提交列表及说明

- 编译错误:for语句中i=1后面只打了一个分号
- 编译错误;return 0没有写在for语句中
代码互评:
-
同学的代码:
![]()
-
自己的代码:
![]()
对比:
1). 同学考虑到了正负号,相比我的更加严谨,要向其学习
2). 同学使用的是do-while语句,我用的while语句
4. 学习总结:
4.1思维导图:

4.2 学习进度条
| 周/日期 | 这周所花时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 10/9-10/12 | 两天 | 87+行 | 整型和浮点型,printf,scanf语句,赋值运算符和算术运算符以及关系运算符 | 不知道什么时候应该空格什么时候不用空格 |
| 10/16-10/18 | 两天 | 90+行 | 循环语句 | for语句还是有点晕晕的 |
| 10/23-10/25 | 一天 | 89+行 | 调用函数 | 还没搞清楚调用函数的具体使用 |
| 10/30-11/2 | 一天 | 120+行 | 简单的四则运算,字符型 | 不明白什么时候应该打大括号,什么时候不要打 |
| 11/6-11/8 | 一天 | 100+行 | 使用switch语句 | 理解题目有些困难 |
| 11/13-11/14 | 一天 | 130+行 | 循环语句 | 很难将题目与编程联系起来 |
4.3. 累积代码行和博客字数

4.4 学习体会
本周学习了while语句还有do语句、do-while语句,与for语句相比各有各的好。有多学习了一种语句,很开心。


浙公网安备 33010602011771号