关于程设查重问题及应对策略

来源:互联网 发布:端口号对应的协议 编辑:程序博客网 时间:2024/05/16 09:11

  很幸运,36道题都没被查到。从初步查重结果来看,基本上被查到的代码都是基本上没怎么修动过的,即连变量都没怎么改,根据此次经验及学长经验,分析得出程设的查重应该只是一般般的对拍,不过还是略高级一点,可以抽行对拍,并不是完全严格的对拍,还好它并没有老师说得那么智能,可以直接查逻辑的重。大佬们都是自己写的代码,当然不用担心被查重了,但是像我们这种菜鸡还是很怕怕的,毕竟有的题是直接照搬,自己不会写啊,下面给一些我自己的经验。

  应对策略:

  1.改变量名。变量命名就按照一般的驼峰法即可,例如StrLen,WordNum等等,或者Map_Int,反正不要a,b,c,d....即难懂又不美观。注意留心一下变量里面i,l,I,L,极容易与1混淆,尽量注意一下,曾经就被坑过。

  2.逻辑改位。不要直接照别人的代码顺序,像函数模块这个明显能够调整相对顺序,不过老师说查重时所有引用的代码要代回主函数里,这个有点。。。(机智啊),不过这个小问题能改一下就改一下吧,毕竟如果顺序一样的话会使得相似度更高;与此同理,像if() else if() else if() else ,case:beak,case:beak....这类的条件判断的也要尽量改一下相对位置以降低相似度;还有一些改位,例如赋值的先后,初始化的先后,循环的先后,输入输出的位置调整等等。

  3.增减代码。有时可以对源码进行一些不痛不痒的增减,曾经参考一些代码,发现有的部分可以省略,或者换一种表达方式,还可以加一些代码,尽管在实现的功能上已经重复了,不过再来一次也没关系(这个是在不超时的基础上进行)。

  4.注释大法!一般写代码就是要加注释的,不然过一段时间就忘记这段代码是什么意思了,但是仍然有不少同学写代码不加适当的注释,不过写时一时爽,码后火葬场。这加注释也是一种优秀,严格来说是基本习惯。这里我们加注释的策略分两种,一种是你自己写的代码,就正常加注释就好,注意注释要另起一行,当然也可以跟在代码后面,不过在这门课上尽量分行加注释,相似度会低一些;还有一种是你“借鉴”别人的代码,这个加注释就要多了,可以把题解加上,然后每隔一行加个注释(可以是无效注释,也可以是有意义的注释),

 例如

 

#include<stdio.h>//我是降相似度的无意义注释#include<string.h>//我是小注释!~~~int main(){    int a;//定义***    int b;//定义***    //初始化    a=0;    b=0;    //输入数据    scanf("%d %d",&a,&b);    //输出数据    printf("%d\n",a+b);    //搞事,搞事,我是无意义的小注释    return 0;    //终于要快注释完了}

   加注释的方法可以有效的降低相似度,基本上之前的学长们也是推荐这个方法,从这个方法来看,可以进一步猜测查重程序是用了对拍的。

  5.逻辑改写。这个好理解,例如递归改循环之类。


  基本上就这么多了,也够用了,像改变量名配合加注释的方法,哪怕其他都一点不动,也基本上完全克敌,不要问我怎么知道的,嘿嘿嘿!

妈妈再也不用担心我这菜鸡被查重了!


原创粉丝点击