信奥考试反思及总结

信奥考试反思及总结

上次信奥考试,我虽然拿了第二名,但还是有些地方是十分欠缺的。考试结束后,我严重地意识到了几个问题,再次归纳总结并反思。

一、我考试太过性急,考试卷一发下来并没有浏览整张试卷,而是直接打开第一张试卷,心急如焚地看了下去。

     改正方式:当我拿到试卷后并不急于做题,而是先将试卷过目一遍,规定一下难度,然后先易后难。再根据试卷难易程度规定每道题所花的时间,等这些工作做完后,在根据难易程度逐个做题。

      二、我轻视简单题,不看重简单题,一看到简单题就立马做,也不分析其中的内涵。如这次考试,我一看到第一题题面就知道是校门外的树,于是我什么都没思考,立马就做了起来,到最后还把原可以满分的程序改成了错误的。源代码如下:

#include<bits/stdc++.h>

using namespace std;

int main(){

freopen("paint.in","r",stdin);

freopen("paint.out","w",stdout);

long int a[102],i,j,n,m,x,y,s=0;

for (i=1;i<=102;i++) a[i]=1;

for (i=1;i<=2;i++){

cin>>x>>y;

for (j=x;j<=y-1;j++){

if (a[j]) s++;

a[j]=0;

}

}

cout<<s;

return 0;

}

这个代码在我看来应该是可以拿满分的,但是我最后就因为没看到题目中的一些细节,改成了错误代码:

#include<bits/stdc++.h>

using namespace std;

int main(){

freopen("paint.in","r",stdin);

freopen("paint.out","w",stdout);

long int a[102],i,j,n,m,x,y,s=0;

for (i=1;i<=102;i++) a[i]=1;

for (i=1;i<=2;i++){

cin>>x>>y;

for (j=x;j<=y-1;j++){

if (a[j]) s++;

a[j]=0;

}

    a[x]=0;a[y]=0;//就是这步操作,我题目完全漏看了。

}

cout<<s;

return 0;

}

三、还有一点我需要稍加改进的是代码的风格,优良的代码风格不仅可以让不理解题目不会做题目的人看懂,自己检查题目也是比较容易的。

改正方法:多去看一些风格优良的代码,自己打代码时也稍加练习,努力练成良好的代码风格。

不过在这里总结的不只是缺点,有很多优点也是需要归纳的。

      一、我善于打表。打表在信奥中也是比较重要的一块。打表可以更容易让你找出程序中的某些错误。通过输出一些变量的值来找出一些代码中的缺陷。

  分析:这次考试我也有一道题是靠打表来找出错误的。就是这次考试的第三题。因为我也是刚刚从pascalC++C++中的字符串我也不是特别熟悉。因为在pascal中设置一个字符串数组,如果想要找第i个字符串中的第j个字符的话,就是s[i,j]的。打惯了pascal的我在编C++字符串时也这样打了上去。结果其他错误一点都找不出来,在万般无奈下,我打表了s数组。最后发现s数组中s[i,j]输出的不是一个字符,而是一整个字符串,从而找出了错误。将这个改成s[i][j]就正确了。

对于这些缺点和优点,我会努力的改正和发扬。

猜你喜欢

转载自blog.csdn.net/huang_ke_hai/article/details/78411496