本周学习报告 第二周 12.7
本周主要重点学习了
1.c语言的一些提高题
矩阵的转置 绘制棱形 猜数
2.HTTP的部分内容
包括故障代码和报文等等
3百度比赛学到的部分碎片式内容
1c语言
矩阵的转置
输入和输出只要依靠叠加for就可以完成
关键的转置步骤其实也很简单
a【i】【j】=b【j】【i】即可 再通过for来批量转化。 这里主要运用了函数来声明,可以把主要结构写得较为简单,有利于阅读理解。
另外void也值得熟记,特别是声明和定义时,写法是有区别的。
void zhuanzhi(int arrary[2][3],int b[3][2]);
void zhuanzhi(int arrary[2][3],int b[3][2])
zhuanzhi(arrary,b);
另外就是一个整体布局的分析,大括号的使用要特别注意,不然程序容易有bug。
绘制棱形
主要还是for的叠加使用
因为每一行的*和 空格 是有规律的变化,实际上是考察对于for 的;;理解和对于函数的递推。所以面对这种情况,几次摸索过后,发现for(i=0;i<n;i++)可以给出一个
123456789的标准数列,这才让之后的 空格和※变得有章可循。
同时绘制棱形时,实际上只要绘制左边空格和中间主体即可,右边实际上是不用考虑的,这无疑也是减少计算量的方式。
另外一个问题就是如果完全对称绘制图形,棱形中间有两行实际上是相等的,为了避免这种情况,实际上有几种思路
1绘制下方倒三角时改变算法,特意少绘制一行,这是目前操作性最强的方式
2上下都少绘制一行 中间一行又单独的for和printf绘制
3绘制完上三角后 退回原来这一行,用\b让指针重回前面,再覆盖住原来的一行。但是目前来看,退行的代码还无法写出,\b无法完成整个过程,如果修改前面的算法,让\n变成n-1个有可能,但改动量过大,放弃。
猜数,主要是学习随机数的生成
因为随机数范围较大,且不能直接限定范围,所以才只能采取使用余数的方式来限定范围。
HTTP的学习
主要是学习了报文和状态码
没什么好说的直接上图
3百度比赛的若干知识杂记
因为本周有一个百度举办的活动,所以就参加了,并记录了若干零碎的笔记。
主要包括渗透测试和信息收集
讲的不是很深,主要是想跟同学们带个头,提供一点点方向。
如图
以上