C语言I博客作业08

这个作业属于哪个课程 C语言程序设计I
这个作业要求在哪里 C语言I-2019秋作业08
我在这个课程的目标是 熟悉使用while和do-while结构解决问题。
这个作业在那个具体方面帮助我实现目标 在语句的学习上以及程序语言的回顾上帮助我实现目标。
参考文献 百度百科

一、PTA实验作业

1、韩信点兵

题目

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

  • 按从1至5报数,记下最末一个士兵报的数为1;

  • 再按从1至6报数,记下最末一个士兵报的数为5;

  • 再按从1至7报数,记下最末一个士兵报的数为4;

  • 最后按从1至11报数,最末一个士兵报的数为10;

请编写程序计算韩信至少有多少兵。

数据处理

数据表达:使用了整形变量n
数据处理:使用了while循环结构以及if判断语句 ,用来判断是否与题目所说的士兵数相等
伪代码:

输入数据n;

使用while语句一直循环;

循环的同时使用if语句进行判断,只要满足清空便break跳出循环;

否则变量n++继续循环;

代码截图

造测试数据

输入数据 输出数据 说明
本题无输入 2111 韩信至少有2111人

PTA提交列表及说明


因为在dev-c++上运行编译过许多次了,所以在PTA上直接过了。

出现的问题

Ⅰ无限循环

因为疏忽,在12行的地方忘了Break,导致此程序无限循环。

Ⅱ逻辑符使用错误&没有将n初始化

在此程序中,个人觉得应该使用&&而不是&,但是不知道为什么在dev-c++上面用&也可以编译运行成功。

n应该初始化。应该改成 int n=1;

2、jmu-c-二进制转10进制

题目

输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出 error input!

数据处理

数据表达:输入测试数据
数据处理:使用了while循环结构以及switch判断语句 ,用来判断 0,1 和非二进制数
伪代码:

输入数据n;

使用while语句循环,并不断输入单个字符,如果遇到换行符(即回车)就退出;

循环的同时使用switch语句进行判断,进行0、1计算和非二进制数停止;

输出结果;

代码截图

造测试数据

输入数据 输出数据 说明
100 4 二进制转十进制为4
1111 15 二进制转十进制为15

PTA提交列表及说明

出现的问题

Ⅰ选择的方法不充分

本来我是打算使用短除法的方法,进行反计算,推出十进制,但是似乎有问题

于是我便采取正方向的当方法,如果是1就 n = n * 2 + 1; 0的话就n = n * 2 + 0 这样就好了

2.代码互评

同学代码

自己代码


这个同学的代码没有明显问题,逻辑通顺可正常执行并使用。但我觉得可在while()判断中加上输入检测,如:while(op=getchar()&&op!=' '),而不是执行了之后在进行停止检测。另外使用if-else并不简洁,可是要switch语句(因为在多情况判断中switch明显占优,所以采用通用方法)
我的代码就直接在循环语句那儿设置while (ch = getchar(), ch != ' ')然后使用switch分支结构分两种情况讨论case'1':n = n * 2 + 1; break;
case'0':n = n * 2 + 0; break;

3.学习总结

3.1学习进度条

周/日期 周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第3周/10月6~16 3天 181行 if-else语句,递归,分段函数的计算 对这些还不是很熟练,对这些符号的使用跟空格的使用不是很清楚
第4周/10月10~17 2天 181行 for循环语句与逻辑符 循环语句使用不够熟练,数学循环问题也有很多不明白的事情,不知道先后
第5周/10月18~24 10h 148行 基本程序语言与生成乘方表与阶乘表 基本程序语言了解的都差不多了,有些不是特别熟练还是需要加强练习的,生成乘方表跟阶乘表这方面的内容还有很多不懂的,觉得完成作业很费力气,要查阅各种资料,可能跟我数学理解能力不强也有关系吧。
第6周/10月25~31 22h 371行 多分支结构、字符型数据类型和逻辑运算符。顺便研究了几个心形的代码,觉得挺有趣。 就是有时候总是会丢三落四,然后也比较迷惑一些运算符使用方法,分之这一块还是不够熟练。
第7周/11月1~7 25h 211行 熟悉多分支结构switch语句的使用、字符型数据类型和逻辑运算符。 迷惑的真的太多太多了,但是百度大发真不错,虽然没有白嫖别人的答案解释香,但是还是很有用,一学就让我停不下来的那种。对数学研究的还是不够好,所以做很多题目转不过弯来,要努力克服。
第8周/11月8~14 22h 241行 熟悉使用while和do-while结构解决问题。 上课听的不太明白,课后也有查找资料,但是还是有很多不懂的,然后最近在做学习总结,想把自己不懂的都整理出来然后弄懂。

3.2累计代码行和博客字数

3.3学习内容总结和感想

3.3.1学习内容总结

3.3.2学习体会

越学到后面越觉得自己什么都没学会,每次写代码都丢三落四的,不是少这里就是少那里,最近学习态度也不够好,应该好好反省自己了。花在学习上的时间也少了,然后虽然这几天学会了一些软件的安装,准备下周把系统安装学会,但是更应该在学习这些的同时把c语言学好。看了别人作业,很多人都会了数组,而我连上课学的东西都不能够熟练运用,内心有点难受呀也有点自责。但是这只能怪自己咯,不够努力,应该向他们学习的。要端正自己的学习态度,安排好学习的时间。就算0基础也相信自己可以学好的。下周要将所学的语句以及pta作业做一个总结,不希望自己只是说说而已。我觉得自己可以做到,一定可以。不能只做一个理论玩家,毕竟实践出真知。加油吧,继续努力。
以后在写题的时候,可以先试着写一下流程图熟悉一下题目理清思路,然后再码代码。这样就不至于写的一团糟而且还让自己心烦了。

原文地址:https://www.cnblogs.com/wenwener/p/11863767.html