代码改变世界

C语言I博客作业08

2019-11-16 00:58  李茹萱  阅读(269)  评论(0编辑  收藏  举报
问题 答案
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/9978
我在这个课程的目标是 熟练地运用C语言编写代码
这个作业在哪个具体方面帮助我实现目标 多练习编写代码
参考文献 《C语言程序设计》《C Primer Plus》

一.PTA实验截图

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

对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10的9次方的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6

1.1.1数据处理

定义变量N,count,sum
输入N
while(使循环运行的条件){
        count++;
        sum+=N%10;
        N/=10;
}
输出count,sum+=N%10;
返回0

1.1.2实验代码截图

1.1.3造测试数据

输入 输出 说明
321 3 6 三位数,各个位数上的和为6
3252 4 12 四位数,各个位数上的和为12
34252532 8 26 八位数,各个位数上的和为26

1.1.4 PTA提交列表及说明

1.1.4提交列表说明:

编译错误:因为在后面打了标注中英文没有及时换回来,所以后面打的分号有一些是中文的分号,我后面把代码复制到devc++上去看了一下,然后找出了那些中文的分号;
段错误:scanf里面忘记加上&的了,后面反复检查的时候发现了;
答案错误:粗心把printf写成了scanf,检查的时候发现的;
格式错误:printf里面的%d没有用空格分开;

1.2韩信点兵

在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10;
请编写程序计算韩信至少有多少兵。
输入格式:
本题无输入
输出格式:
输出韩信至少拥有的士兵人数。

1.2.1数据处理

数据类型:定义了整型变量n;
数据处理:运用了while循环结构。

1.2.2实验代码截图

1.2.3造测试数据

输入 输出 说明
2111 韩信至少拥有2111个士兵

1.2.4PTA提交列表及说明

答案错误:开始的时候忘了加上1到11的那个条件了,后面自习看了一下题目改过来了;
编译错误:后面加条件的时候不小心把!和=错位了,后面检查了一下改过来了。

二.代码互评
同学代码

我的代码

  • 同学的代码中除了用了while结构,还用了if-else语句,我只用了while结构,相比他的代码而言,我的更为简洁。

同学代码

我的代码

  • 同学的代码中用了if-else语句,还用了do while循环结构,容易理解,而我仅仅用了while结构,相较而言更为简洁。

三.学习总结

3.1学习进度条

周/日期 这周所花时间 代码行 学到的知识点 此前比较迷茫的问题
第一周 两天 619 32 学会简单地编写代码
第二周 三天 828 18 学会计算摄氏温度与华氏温度的转化
第三周 三天 1128 90 学习scanf语句,if-else语句
第四周 四天 1425 75 初步了解for循环语句
第五周 三天 1408 83 对自定义函数的定义和调用有初步的认识和了解
第六周 四天 1523 144 对分支结构有进一步的了解,学习了运算符号的输入输出
第七周 两天 1688 133 对switch语句有了一定的了解
第八周 一天半 1438 84 do while循环结构和while循环结构

3.2累积代码行和博客字数

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

3.3.1学习内容总结

3.3.2学习内容感悟
  • 1.对于这一周的学习,我也是很无奈的,感觉学do while循环结构和while循环结构学的有点懵,感觉这个条件不是很难的样子,用起来就是难搞;
  • 2.如果可以的话,还是希望可以很好的掌握这些循环结构;
  • 3.可能是题目有点难,也可能是理解能力有问题,题目看不懂,要反复理解好久。