c,c++杭电和南阳理工上做题时常见的错误3

1,在c语言时,别忘了,scanf();里面要有&,而在输入字符串时,%s,不要&   !

2,在多次输入时,scanf时 要有!=EOF scanf输入几个数,返回的值就是几,如输入两个,则scanf 返回的值为2,输入一个数,则scanf的值为1 cin的话就可以直接          while(cin>>n)了,而不用加上!=EOF。

3,在当n ,m同时为0时,结束程序,这时候为 &&(n!=0||m!=0)

4,在分数加减法时,要注意,最简,正负号,还有1/1等于要写1.

5,有些题就是狐假虎威,看似庞然大物,实则很简单的算法,用脑子想想即可。

6,很多题目都是从最基成来考虑的,比如说,求余数的规律,如果都知道规律那早就出来结果了,还需要现在让你算?程序的目的就是利用计算机来计算,计算机的优势就是计算的快,要充分的利用他的优势,很多题目也许最简单的总结性的公式你不会,你可以用那种貌似推到公式的方法,一点一点的把他做出来,而计算机就不怕麻烦。计算速度快。

7,做题时可以大概的估算一下会不会超时,一般一秒的估算是10^8次方,当然可以更高些。

8,sort排序不仅可以排数字还可以排字符的大小,因为字符是按照ascall码来运用的。

9,在用const int n=100;接下来就可以用char a[n]了

10,调用的三种方式,数值传递,指针传递,引用传递。

11,要注意每一个细节,因为每个细节你所忽略的都可能是一个考点,那么短的题目,要注意考点,还是要有认真的学习态度。

12,递归调用循环50次就够呛了,时间很慢,所以用递归的时候很可能就超时了。

13,不是所有的while()里面的都是n!=0,要看清题意,有的是n!=-1,而n=0是还是要执行的。

14,一般情况下,在3千万到5千万的时候就有可能超时了,也就是3,5后面有七个零的时候。更不用说有9个零的时候了,所以下次做题的时候,先判断一下时间,不要等运行出错的时候在改程序了,会浪费很多精力和时间,也是写的比较烂的代码,那做的就是垃圾。

15,最右边的数,这个题

16,有一次因为写if和else的时候出错了,,,只写if后再写if要注意,第一个if后面的结果可能就直接用在了第二个if里面了,所以要注意,不到不得已一定用if else,,,不然很可能出错,而且还不好改

17,当有数组a[1000]时,或者里面的数更大的时候,把它放在main函数外边,不然的话可能内存不足,在main函数外边就可以了。

18,在输入多组数据,而且这多组数据要多次输入的话,输入的格式。。。可以先输入这多组数据的第一个,然后在输入这些数据的后面的几个。

19,if(strcmp(a[i],"#")==0)这个语句是错误的!!

20,cin不能接受换行和空格。

21,做题的时候应该算一下会不会超时,或者是超内存,做出来题了才发现不对,浪费时间又浪费精力,还浪费金钱!!!

22,runtime  error (运行时错误)就是程序运行到一半,程序就崩溃了。

比如说:

①除以零

②数组越界:int a[3]; a[10000000]=10;

③指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10;

④使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10;

⑤数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000];

23,在cout时或者printf时要注意不要多输出空格!!!不要不该输出的时候输出,也不要该输出一个空格的时候输出两个空格!

24,最后一行,有的时候,有多组输出数据的时候,最后一个换行是不需要的if(n!=0)cout<<endl;

25,在for循环里面,第一个分号前的也要判断一下是否符合条件,至于i++,可以理解为在for循环里面所有的程序都执行玩了以后在i++的,然后在进行条件判断

26,对于让你找出最多的那个,若是最多的有多数的话,都输出来这样的问题,可以先找出最大数,然后在来个for循环,找出与最大的相等的,然后输出来

27,memset(a,0,sizeof(a)),这个函数需要头文件#include<string.h>,目的是对a清零,但是memset函数不只是这一方面的功能,0还可以写成字符,当然还有看你的a是什么类     型的了。

28,在数据很大时,要用long long ,比如求i*i而i很大(不超过九位),则在定义的时候也要将i定义为long long行不只是h(i*i)。

29,在for循环里面定义的变量i 出去了for 循环就不能用了

30,a=fabs(a);/*这是求浮点数绝对值的函数*/If(fabs(i*2.3+j*1.9-82.3<0.0000001))cout<<i<<’  ’<<j<<endl;

31,


【吐槽】12级软工邓松华 2014-4-20 22:26:38

不过输入的时候有格式错误,,,以前见的也不多。。。。

【吐槽】12级软工邓松华 2014-4-20 22:26:43

嗯,,,,,
【冒泡】13计科王颜军
2014-4-20 22:27:03

恩  知道了  以后注意点就行了  

【吐槽】12级软工邓松华 2014-4-20 22:27:34

平时的输入的时候基本不考虑输入格式。。。这也是个提醒吧。 
对于输入的时候若是有字符的时候考多注意考虑输入的时候空格的问题。
32,
if..... if......if....每句都会执行到
if....else if.....else if....一旦中间有一个if判断为true而进入了,后面的if不会再进行判断
33,在写程序的时候,注意定义变量的时候不要用那些专有名词,比如delete,register,count,等等这些,这样是别人已经申请过的,你不能用,会被说为是没有定义。
44,当n为10000时,n的平方就要超时了,不用再试了
	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值