c博客作业01--分支,顺序结构
0.展示PTA总分
1.本章学习总结
1.1. 学习内容总结
1.数据类型
-整型 int 取值范围:-2147483648~+2147483648
-单精度浮点型float取值范围:3.4e-38~3.4e+38
-双精度浮点型double取值范围:1.7e-308~1.7e+308
使用时要注意变量的范围以及浮点型数据与0的比较
if-else语句与switch语句
if-else语句更适合对连续性问题求解
if(xxx)//满足条件1则进入分支1
{
xxx;//数据处理1
}
else if(xxx)//满足条件2则进入分支2
{
xxx;//数据处理2
.
.
.
else//均不满足则进入该分支(合理运用互补有奇效)
{
xxx;//数据处理n
}
switch语句更适合对离散型问题求解
swich(op)//可能情况的集合(
{
case1:{xxx}break;//满足情况1则进入分支1
case2:{xxx}break;//满足情况2则进入分支2
.
.
.
default:{xxx}//这里default 语句主要用于检查默认情况,或者处理错误情况
}
for循环与while循环
for循环更精确;其先执行再判断
for(xxx;xxx;xxx;)//分别对应初值表达式(可在其中声明局部变量),条件表达式和步长表达式
{xxx}//循环体语句
while循环更简洁,其先判断再执行
while(xxx)//表达式
{xxx}//循环体语句
常用数学函数
-平方根函数sqrt(x):计算x^0.5。如是sqrt(4.0)的值为2.0
-绝对值函数fabs(x):计算|x|.如fabs(-3.56)的值为3.56
-幂函数pow(x,n):计算x^n。如pow(1.1,2)的值为1.21
-指数函数exp(x):计算e^x。如exp(2.3)的值为9.974182
-以e为底的对数函数log(x):计算logx。如log(123.45)的值为4.815836
1.2本章学习体会
-通过这两周的学习让我对编程,计算机领域产生了极大的兴趣.虽然我的基础不好,本身也没有好的学习习惯和方法,但我觉得通过以后我和老师们的共同努力,我一定可以提升自己.
-还有就是发现我的代码和同学的有一定差距,即我的代码总是又臭又长,代码质量较低,所以写代码之前之后都应该好好思考一下我的代码还可不可以更简洁,可不可以再优化一下,我觉得这是我学到的很重要的一点----代码优化.
-代码量统计:
从开学到现在的净代码量大概只有######600######行左右吧,太少了!!!接下来我一定会努力的
2.pta实验作业
2.1念数字
2.1.1数据处理
数据处理
数据表达:
-int input:存储输入的整数
-int input2:保存输入的整数
-int bit:计算整数的位数
-int A:存放最高位
-int C:为A的值服务
数据处理:
两个if判断,两个while循环,一个嵌套的if-else语句.
2.1.2代码截图
2.1.3本题可拓展功能
可用以后要学的数组简洁的完成该题
2.1.4pta提交列表及说明
我在vs上敲了很长很长很长时间,选这道题的主要原因是因为前半部分我get到了这道题,而后半部分为了解决一个空格的问题又复制了一大堆,导致代码非常长,虽然算不上学到什么,但这是我想了很久才想出来的,值得纪念一下.作为我以后前进的动力.
2.2 7-7 猜数字游戏
2.2.1数据处理
数据表达:
-int number:存放随机数
-int times:存放限制次数
-int guess:存放所猜数
-int guesstimes:存放所猜次数
数据处理:
一个while语句,两个if嵌套语句
2.2.2代码截图
2.2.3本题可拓展功能
由此题可想到如何产生随机数
并且在rand()后可通过取余来控制随机数的范围
2.2.4PTA提交列表及说明
题目试了好多次,开始是先想一遍,在脑子里有个大概,然后打代码,然后调试,修正,反复N次 也还是没有成功,最后去网上搜了一下发现自己的循环是由大到小,不容易计算边界情况,最后改成 由小到大的循环问题才迎刃而解
2.37-9 龟兔赛跑
2.3.1
数据处理
数据表达:
int time:存储输入时间
int minute:存储递增时间
int ten:存储兔子的循环时间1
int thirty:存储兔子的循环时间2
int sRabbit:存储兔子的路程
int sTurtle:存储乌龟的路程
int flag:改变循环条件
数据处理:
一个for循环,四个if-else嵌套语句,一个if-else判断语句
2.3.2代码截图
3.3.3本题可扩展功能
这是百度时一位大佬用数学函数优化的方法来写的,感觉非常神奇
2.3.4PTA提交列表及说明
这题我其实是不会的,虽然我写了几个小时,写出来的代码还是很长而且检验起来很麻烦.最后还是去百度了看到大佬写的代码寥寥几行就完成了,不仅膛目结舌,最后认真分析了一下又写了几遍才对了
阅读代码
亮点分析:
-1.首先很明显作者很清楚该题的思路,即先将图形信息转换为数字信息,我认为这也是这题的难点,再利用算法来解决问题;
-2.其次其算法逻辑感很强,对逻辑运算符的运用炉火纯青,使得代码很简洁;
-3.再有是其取余的妙用;
-4.再有是循环中运用了continue来使得算法更高效;
-5.整体来看能将这样一道题用短短这几行代码完成,可见作者功底之深,尤其是数学,所以学C的同时也要将高等数学,线性代数等经典数学著作务于精熟.