C语言常见改错_第1页
C语言常见改错_第2页
C语言常见改错_第3页
C语言常见改错_第4页
C语言常见改错_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言改错题常见错误归纳一、书写错误l:mian一(main)见彳列一2:print一(print。3:include<stdio.h>^(#include<stdio.h>)二、类型定义错误1:在主函数中,要注意计算时用到的与定义是否一致。(int是十进制整数,float是实数,double是双精度、只是较float更精确)见例四2:在子函数中注意大括号外定义类型与里面的要相同。见例三三、格式错误1:常见格式intT%d,long-%ld,float-%f,doubleT%lf2:所需输出结果与已定义类型不同,可以利用强制转换符。如定义sum为int,但要输出实数float,可以(float)sumo见例一四、固定语句格式错误1:for(; ;2:while(3:switch(){}j_(for,while,switch后面无分号)见例五4:do{Jwhile(足(do{}while结构后面有分号)五、赋值错误1:未赋初值。如求和时一般sum=O,求阶乘时一般n=1o见例一2:注意题中赋值是否正确。如究竟i是赋1还是0。见例五六、大小关系错误1:大于号和小于号与所求程序不符。见例一2:是否携带等号<=,>=七、返回值错误1:在子函数中,return(i)i是要返回到主函数的值。2:在子函数中,return(1)返回主函数是执行后yes的结果jeturn(O)返回执行后no的结果。见例二3:一般在主函数中很少涉及返回值的错误八、其他错误1、参数未定义:程序中出现的任何变量i或常量j=1,都要定义他们的类型。2、等号与赋值弄混好:==为等号,=为赋值号。见例二3、与scant搭配未加地址符,也不可加\n换行符在d后面,scanf("%d”,&i);4、行末未加分号,每行后面需要分号。5、子函数中形参为定义好。见例六经典例题例一:#include/zstdio.h〃mian() /*(1)主函数名拼写错误,应改为:main()*/(inta[10],i,k,sum;/*(2)变量sum应初始化,改为:sum=O;也可将变量声明为float并初始化,改为:…k;floatsum=0;*/printf(/z\nPleaseenter10numbers/');for(i=0;i<10;i++); /*(3)应去掉行末分号*/(scanf(〃%d〃,a[i]);/*(4)未加地址符,a[i]应改为&a[i]*/)printf(z,\nPleaseenteranothernumberk二〃);scanf(〃%d〃,&k);for(i=0;i<=k;i++) /*(5)循环条件应改为:i〈k*/(sum+=a[i];}printf("\nsum=%d,z,sum);/*(6)输出应改为:二%f〃,(float)sum/k若前述变量定义sum已声明为float,则仅改为:..二%f〃,sum/k*//*打印结果*/例二:#include<stdio.h>voidisSuShu(intnum)/*(1)函数类型void应改为int或short*/(intK二num/2;inti;for(i=2;i<=K;i++)(if(num%i=0)/*(2)等号写错,应改为:num%i=0*/return0;)return1;)voidmain()(intN,K,i,count=0;printf(〃请输入一个正整数:〃);scanf(〃%d”,&N);getchar();printf(〃请输入每行显示的数的个数:〃);scanf(〃断T,K); /*(3)未加地址符,k应改为&k*/getchar();printf(〃小于%d的素数如下:\n〃,N);for(i=2;i<N;i++)(if(isSuShu(i)==0)/*(4)条件表达错,应改为(isSuShu(i)=1)或(isSuShu(i))*/count=0;/*(5)本句应改为:count++;或count+=l;*/count=0;printf(〃%d\t〃,i);if(count%K=0)printf(〃\n〃);})例三:/*(1)函数类型错,/*(1)函数类型错,int应改为double*//*(2)等号写错,应改为:n=0*/doubleres=l.0;if(n=0)return1.0;while(n>l&&n<170);res*while(n>l&&n<170);res*=n——;res=l/res;returnres;/*(3)应去掉行末分号*/main();/*main();/*(4)应去掉行末分号*/intn;printf("InputN:〃);scanf(z,%dzz,n); /*(5)未加地址符,n应改为&n*/printf(/z\n%d!=%f\n,z,n,fun(n));/*(6)输出格式%£应改为%lf*/例四ttinclude^stdio.h〃main()inta[6],i,k,sum;sum=0;printf(''XnPleaseenter6numbers:");for(i=0;i<6;i++)scanf(,z%dz,,a[i]);/*(1)未加地址符,a[i]应改为&a[i]*/scanf(〃%d〃,scanf(〃%d〃,&k);for(i=l;i<=k;i++)/*(2)循环初值应改为:;0;*//*(3)循环条件应改为:i<k;*/sum+=a[i];printf(,z\nsum=〃,sum);/*(4)少了输出格式字符,应改为:〃\nsum=%d*/例五:ttinclude<stdio.h>main()inti,a[100]={90,80,70,80,59,53,40,75,80,90},b[6];for(i=0;i<6;i++)b[i]=0;/*(1)循环初值应改为:i=l;*/for(i=0;i<10;i++);/*(2)应去掉行末分号*/if(a[i]<60)a[i]=0;elsea[i]=a[i]/10;switch(a[i])case0:b[l]++;break;b⑵++;break;b[3]++;break;b[4]++;break;case9:b[5]++;default:b[5]++;/*(3)行首或上一行末应加大括号:{*//*(4)行末应加:break;*/printf(,zTheresultis:\n〃);for(i=l;i<6;i++)printf(〃%d0numberis:\n〃,i+4,b[i]);/*(5)少了一个输出格式字符,应改为:〃%d……is:%d\n〃*/printf(〃\n〃);例六ttdefine"stdio.h〃/*(1)ttdefine应改为:ttinclude*/fun(inta,b)/*(2)形参声明错,应改为:fun(inta,intb)*/return(a+b);)main(){intx=2;y=5;z=8;r;r=fun(fun(x,y),z)printf(〃%f\n〃,r);)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论