资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,常见错误分析,-C语言易犯错误举例,常见错误分析-C语言易犯错误举例,1,忘记定义变量,int main(),x=3;,y=6;,printf(%dn,x+y);,C,语言要求对程序中遇到的每一个变量都定义其类型。如:,int x,y;,忘记定义变量int main(),2,输入输出的数据类型与格式不一致,int a=6;,float b=4.5;,printf(%f,%dn,a,b);,编译时不给出出错信息,但输出结果与原意不符。应改为:,printf(%d,%fn,a,b);,输入输出的数据类型与格式不一致int a=6;,3,使用scanf函数时,忘记用地址符&,int a,b;,scanf(%d%d,a,b);,应改为:,scanf(%d%d,但如果是向字符数组输入数据,数组名前不用加&,如:,char a20;,scanf(%s,a);,因为数组名就是数组首地址。,使用scanf函数时,忘记用地址符,4,输入数据的形式与要求不符,假如有以下scanf语句:,scanf(%d%d,输入的数据为:3,4 -错误,输入应为3 4(用空格分隔),如需用逗号分隔,scanf语句应为:,scanf(%d,%d,输入数据的形式与要求不符假如有以下scanf语句:,5,语句后面漏分号,如:,a=3,b=4;,这里a=3后漏了分号,编译会报错。,但预处理语句行末不用加分号,如:,#include,后面不用加分号。,语句后面漏分号如:,6,不该加分号处加了分号,如:,for(i=0;i10;i+);,scanf(%d,printf(%dn,x*x);,这里for语句后加了分号,循环体变成了空语句,中原来的循环体在执行完for语句后执行一次。,不该加分号处加了分号如:,7,对应有花括号的复合语句,忘记加花括号,如:,sum=0;i=1;,while(i=100),sum=sum+i;,i+;,这里由于没有加,循环体只执行一条语句sum=sum+i,与原意不符。应改为:,while(iy?x:y);,这里,由于max函数定义在后,编译会报错。所以需在main函数中加上函数原型的声明:,float max(float x,float y);,忘记对所调用的函数进行函数原型声明int main(),15,
展开阅读全文