C语言|博客作业08

一、本周教学内容&目标

第4章 循环结构 4.1-4.2 熟悉使用while和do-while结构解决问题。

二、本周作业头

问题|答案
| ------ | :------😐------😐
这个作业属于哪个课程|C语言程序设计II
这个作业要求在哪里|https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9977
我在这个课程的目标是|熟练使用c语言进行编程
这个作业在那个具体方面帮助我实现目标|使我灵活使用while和do-while结构解决问题
参考文献|https://wenku.baidu.com/view/152b703359fb770bf78a6529647d27284b73372c.html

三、本周作业

1.PTA实验作业

请再此处列出自己的排名图片,如:

从PTA题目集中选出2个你最满意的题目完成以下内容:

1.1求整数的位数及各位数字之和

对于给定的正整数N,求它的位数及其各位数字之和。

1.1.1数据处理

(1)数据表达:我先用int定义i,m(正整数N),a(各个位数)及sum(各位数字之和)我在这里主要用的是for语句,然后用式子a=m%10得出正整数m的各个位数,用m/=10得出位数,最后根据sum+=a得出各位数之和。
(2)数据处理:(伪代码):
int /定义变量/
scanf()
for()/循环/
a=m%10;/正整数m的各个位数/
m/=10;/得出位数/
sum+=a;/各位数之和/
输出结果

1.1.2实验代码贴图

1.1.3 造测试数据

输入数据 输出数据 说明
321 3 6 这个数是三位数,位数之和是6
345 3 12 这个数是三位数,位数之和是12
89877 5 39 这个数是五位数,位数之和是39

1.1.4 PTA提交列表及说明


说明:(1)编译错误:在输出时没加上“i”。
改正错误:在“printf”输出里面加上“i”。

1.2 韩信点兵

在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:

按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。

1.2.1数据处理

(1)数据表达:我先用int定义士兵数m,且我在这里主要用的是for语句,并根据题意列出“(m % 5 == 1) && (m % 6 == 5) && (m % 7 == 4) && (m % 11 == 10)”,最后得出结果。
(2)数据处理:(伪代码):
int /定义变量/
for()/循环/
if(m % 5 == 1) && (m % 6 == 5) && (m % 7 == 4) && (m % 11 == 10)/士兵数目/
printf()/输出结果/

1.2.2实验代码贴图

1.2.3 造测试数据

输入数据 输出数据 说明
无输入数据 2111 韩信至少拥有士兵为2111人

1.2.4 PTA提交列表及说明


说明:(其实这题我本来并不想讲,只是我写这题用的时间仅次于第三题,且问题较大,所以拉出来讲)(1)编译错误:很明显这是要做一个判断语句,但我在写“(m % 5 == 1) && (m % 6 == 5) && (m % 7 == 4) && (m % 11 == 10)”时用的都是“=”号,结果就有错误
改正错误:在里面加上双“=”
(2)编译错误:我本想用while语句,就直接写的“while(m = 1;; m++)”结果发现有问题,因为我后面又用了if语句,而while后面要加(条件) { 执行的语句 }。还有其实我不知道为什么"m = 1和m++"之间是两个分号,同学说是要多加一个分号,这里我倒还没弄懂。
改正错误:刚开始我是想把if去掉彻底改成while语句格式,但想了想,发现可以直接把while改成for就可以了,所以我就直接把while改成了for.在"m = 1;m++"之间多加个分号。

2.代码互评(7-1) 求整数的位数及各位数字之和

同学截图:
我的截图:
区别:(1)说实话,这位同学第一排的意思我不咋懂(2)这位同学主要用的while语句而我用的是for语句(3)相较来说我们两个的思路是一样的,但我的相对于更简便。
同学截图:
我的截图:
区别:(1)这位同学同样也用的while语句(2)他定义的量相比我的更少,就更易懂,其它方面的话就差不多了。

3.学习总结

3.1 学习进度条

周/日期 这周所花时间 代码行 学到的知识点简介 目前比较迷惑的问题
1/21-1/23 三天 47 基础的代码知识 代码符号不了解
2/26-2/29 四天 64 学会用MinGw-w64来编译C程序 编译的错误点难找
3/9-3/11 三天 99 学会了赋值和“If-else句式”的运用 编程的熟练度不高
4/16-4/18 三天 87 学会运用代码进行计算 对于式子难以列出来
5/22-5/25 四天 98 对函数的调用有了初步认识 对于一些c语言的符号和语法还是不懂
6/30-6/1 三天 113 初步熟悉了多分支结构、字符型数据类型和逻辑运算符 在看到某个数字和符号一起时还是会迷茫
7/5-7/7 三天 112 初步熟悉了多分支结构switch语句的使用 对于用什么表达式还比较迷
8/12-8/14 三天 110 初步熟悉使用while和do-while结构解决问题 在写字符时有点对字符的含义理解模糊

3.2 累积代码行和博客字数

3.3 学习内容总结和感悟

3.3.1 学习内容总结

请用思维导图的形式将到目前为止所学的内容进行整理。

3.3.2 学习体会

转眼间C语言作业已经写到了了第八周,我对于这八次的学习其实收获还挺大的,学会到了各个C语言编程语句(for语句,if-else语句,switch语句等等),以及各种字符(虽然现在对于某些字符含义还是不懂),但我相信,只要我继续去熟记C语言方面的句型和字符意义,我一定会有很大进步的,天不生我,万古如长夜,加油吧,少年!

posted on 2019-11-13 12:17  神之守护  阅读(276)  评论(8编辑  收藏  举报