一、在写OJ的过程中应该注意的问题。
(1)Do not repeat yourself。注意不要写出重复的代码,那样做,会导致在检查过程中难以更改,代码冗杂。
(2)变量的命名必须固定,如bool函数ans,flag,cns等等。
(3)较大内存数组需在main()函数外定义,比如a[10010]还可以在main()函数内,超过五位就不允许在数组内,数组范围尽量开大一些,最好超过原数据100以上。
(4)在存储字符前,先存储了数字,在存储数字后方必须加一个getchar()吸收多余的空格或换行符。
二、检测OJ过程中应该注意的问题。
1.提交后一直显示wrong answer;
(1)先检查数据是否达到精度,数组的范围是否达标,数据的输入输出格式是否正确。如要存储4个数到数组,却只定义了a[3]:
(2)检查数据的存储结构,数据在其中的状况。
(3)检查for循环中的参数,跟踪数据在每一步中的大小。
(4)更换算法,重新写一遍代码。试着把每一步说给其他人听,通俗易懂。
2.提交显示prensentation error。
(1)检查数据是否多输出了空格,换行。
(2)条件判断来控制换行,空格。如printf(i==1?" %d","%d",a[i]);
3.提交显示 Output Limit Exceed.
注意检查代码中的循环结构。while(scanf("%d",&n)
4.提交显示Runtime error.
代码中的数组范围开得太小。
三、数据的输入格式
1.int T;
scanf("%d",&T);
while(T--)
{};
2.int m,n;
while(scanf("%d%d",&n,&m),n,m){};
//输入为0时,程序结束。
3.int L;
while(scanf("%d",&L)!=EOF){}
//输入多组样例,按下ctrl+Z结束程序。
4.char str[100]
while(gets(str)!=0){}
//输入多组样例,每个样例一行,按下ctrl+Z结束程序。