C语言I博客作业08
问题|答案
-|-|-
这个作业属于哪个课程|C语言程序设计
这个作业的要求在哪里|作业要求
我在这个课程的目标是|熟悉掌握c语言程序设计基本使用方法
这个作业在那个具体方面帮助我实现目标|熟悉代码程序设计,循环结构 熟悉使用while和do-while结构解决问题。
参考文献|《PTA程序设计类实验平台》百度百科,WPS office,《简书》,Xmind思维导图,dev c++,知乎等
一.PTA实验作业
1.1求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和输入在一行中给出一个不超过的正整数N
1.1.1数据处理
(1.)数据表达:定义了N为题目给出的整型变量,定义整型变量C来计算整数的位数,定义整型变量J来计算各位数字之和。
(1.)数据处理:使用了while循环语句来进行 J+=N%10,N/=10语句循环,从而计算出整数的位数和各位数字之和。
(3.)函数处理:运用int main()的主调函数。
int N,C,J;//定义输入的整数N,C为整数的位数,J为整数各位数之和
scanf("%d",&N)//输入N
Do while(N≠0)
J=J+N除以10后的余数;
N%=10;
c++;
End while
printf("%d %d",C,J);输出C,J
1.1.2实验代码截图
1.1.3造测试数据
输入数据|输出数据|说明
-|-|-|-
234|3 9|234为三位数的整数,三位数相加为9
6677|4 26|6677为四位数的整数,四位数相加为26
98|2 17|98为两位数的整数,两位数相加为17
1.1.4PTA提交列表及说明
1.编译错误:尝试编写,在dev c++上编译显示三个错误,进行调试,每更改一次在PTA提交一次,第一次调试出错误是while(N!0)未打等于号
2.编译错误:继续调试找到第二个错误,应题目要求的输出格式应该为%d %d,忘记打空格。
3.编译错误:再一次调试找到最后一个错误,没有打C++来记录位数。
1.2 7-2 韩信点兵
在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10;
1.2.1数据处理
(1.)数据表达:设置了i意思为全部士兵人数的整型变量。
(2.)数据处理:利用if((i%51)&&(i%65)&&(i%74)&&(i%1110))逻辑语句已经for循环语句来计算士兵总人数。
(3.)函数处理:运用了int main()的主调函数。
Int i;//i为士兵总人数
for(初始状态;终止状态;循环状态;)
Do if(i除以5余1且i除以6余5且i除以7余4且i除以11余10)
printf("%d",i);//输出i
End
1.2.2实验代码截图
1.2.3造测试数据
输出结果为i为2111人
1.2.4PTA提交列表及说明
1.答案错误:没有for循环部分。
2.答案错误:添上for循环结构后,将for循环内的i=1错写成i=0
3.编译错误:for循环内因为是for(初始状态 ; 终止状态;循环状态;) 少打了一个分号。
二.代码互评论
我的代码
同学代码
- 区别:(1)我用名字缩写字母CJ来表示是一个长度为一个字节的字符变量,这个同学使用的是op。(2)我只定义了N一个整型变量,这个同学定义了sum,flag两个。(3)我用的是while循环语句,这个同学使用的是swtich分支结构语句。
- 总结和体会:我觉得这位同学使用swtich分支语句的思路是我没有想到的,说明这个同学学习新知识的情况下还来巩固上周学习的知识,真的挺细心的,值得我学习。但我觉得我用while语句编写更简单
三.学习
3.1学习进度条
周期/日期 | 这周所花时间 | 代码行 | 学习到的知识点介绍 | 目前比较迷惑的问题 | 解决方式 |
---|---|---|---|---|---|
第一周 | 一个中午左右 | 20行左右 | 第一次使用博客园以及接触PTA | 对于这门课程属于懵懂状态,仅仅只能明白字面意思。 | 网上百度查询相关课程资料 |
第二周 | 两个中午左右 | 30行左右 | 学会《智慧的提问》以及简单的代码数据分析 | 对于课程依旧陌生,但有了新的认识。 | 看c语言教材书籍 |
第三周 | 两天左右 | 90行左右 | 学习了if-else语法,赋值运算,阶梯价位计算等 | 遇到复杂的编程问题不知道如何开始。 | 在b站,慕课等平台观看零基础C语言入门课程 |
第四周 | 两天左右 | 一两百行左右 | 学会"for"循环语句的基本转换方法以及如何对自己的代码进行调试错误 | 对于整个程序编码设计流程还不够熟练,不能完全独立完成,总是要寻求同学老师的帮助 | 反复编译同一个题目,直到理解此题流程 |
第五周 | 三天左右 | 一两百行左右 | 学会调用函数的使用,求函数阶层等 | 对于整个程序编码设计流程还不够熟练,不能完全独立完成,总是要寻求同学老师的帮助 | 观看网课 |
第六周 | 三天左右 | 两百多行 | 学会熟悉多分支结构、字符型数据类型和逻辑运算符 | 在每次写PTA时寻找错误要找很久,更正很多遍才能正确,但相比以前构思时思路清楚很多 | 记忆逻辑运算符,字符型数据类型等字符 |
第七周 | 两天左右 | 两百行左右 | 学会使用swtich分支语句的使用,此次PTA作业都是用swtich语句编写 | 在构思PTA作业时不能很快就清楚题目思路是什么,每个题目花的时间太久了 | 询问同学的构思方法,加以学习。 |
第八周 | 一两天 | 两百多行 | 熟悉使用while和do-while结构解决问题 | 还是相同的摸不到思路的问题,很多时候不知道如何开始编写 | 花更多的时间去学习。 |
3.2累积代码行和博客字数
3.3学习内容总结
3.3.1感悟
(1.)本周学习了while循环语句,在这之前我们就已经接触过while循环语句了,算是比较熟悉的一次学习内容,还是同样的问题,上课听的懂,下课自己单独面对编程题目时,就比较迷茫和无从下手。
(2.)想要真的学好C语言这门课程,只靠每周需要完成作业时才去敲代码是远远不够的,听闻本周计算机专业有些人敲了三千多行代码,真的非常震惊和佩服,相比他们这种努力的精神,感觉自己好像就是没有敲过代码一样,要好好的向他们学习。
(3.)感谢助教不厌其烦的帮助我解决问题,真的非常非常非常有耐心,有时候没搞懂,助教就一遍又一遍的教我直到我搞懂,太负责了,幸苦助教!