C語言常見改錯_第1頁
C語言常見改錯_第2頁
C語言常見改錯_第3頁
C語言常見改錯_第4頁
C語言常見改錯_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

C語言改錯題常見錯誤歸納一、書寫錯誤l:mian一(main)見彳列一2:print一(print。3:include<stdio.h>^(#include<stdio.h>)二、類型定義錯誤1:在主函數(shù)中,要注意計算時用到的與定義是否一致。(int是十進制整數(shù),float是實數(shù),double是雙精度、只是較float更精確)見例四2:在子函數(shù)中注意大括號外定義類型與里面的要相同。見例三三、格式錯誤1:常見格式intT%d,long-%ld,float-%f,doubleT%lf2:所需輸出結(jié)果與已定義類型不同,可以利用強制轉(zhuǎn)換符。如定義sum為int,但要輸出實數(shù)float,可以(float)sumo見例一四、固定語句格式錯誤1:for(; ;2:while(3:switch(){}j_(for,while,switch后面無分號)見例五4:do{Jwhile(足(do{}while結(jié)構(gòu)后面有分號)五、賦值錯誤1:未賦初值。如求和時一般sum=O,求階乘時一般n=1o見例一2:注意題中賦值是否正確。如究竟i是賦1還是0。見例五六、大小關(guān)系錯誤1:大于號和小于號與所求程序不符。見例一2:是否攜帶等號<=,>=七、返回值錯誤1:在子函數(shù)中,return(i)i是要返回到主函數(shù)的值。2:在子函數(shù)中,return(1)返回主函數(shù)是執(zhí)行后yes的結(jié)果jeturn(O)返回執(zhí)行后no的結(jié)果。見例二3:一般在主函數(shù)中很少涉及返回值的錯誤八、其他錯誤1、參數(shù)未定義:程序中出現(xiàn)的任何變量i或常量j=1,都要定義他們的類型。2、等號與賦值弄混好:==為等號,=為賦值號。見例二3、與scant搭配未加地址符,也不可加\n換行符在d后面,scanf("%d”,&i);4、行末未加分號,每行后面需要分號。5、子函數(shù)中形參為定義好。見例六經(jīng)典例題例一:#include/zstdio.h〃mian() /*(1)主函數(shù)名拼寫錯誤,應(yīng)改為:main()*/(inta[10],i,k,sum;/*(2)變量sum應(yīng)初始化,改為:sum=O;也可將變量聲明為float并初始化,改為:…k;floatsum=0;*/printf(/z\nPleaseenter10numbers/');for(i=0;i<10;i++); /*(3)應(yīng)去掉行末分號*/(scanf(〃%d〃,a[i]);/*(4)未加地址符,a[i]應(yīng)改為&a[i]*/)printf(z,\nPleaseenteranothernumberk二〃);scanf(〃%d〃,&k);for(i=0;i<=k;i++) /*(5)循環(huán)條件應(yīng)改為:i〈k*/(sum+=a[i];}printf("\nsum=%d,z,sum);/*(6)輸出應(yīng)改為:二%f〃,(float)sum/k若前述變量定義sum已聲明為float,則僅改為:..二%f〃,sum/k*//*打印結(jié)果*/例二:#include<stdio.h>voidisSuShu(intnum)/*(1)函數(shù)類型void應(yīng)改為int或short*/(intK二num/2;inti;for(i=2;i<=K;i++)(if(num%i=0)/*(2)等號寫錯,應(yīng)改為:num%i=0*/return0;)return1;)voidmain()(intN,K,i,count=0;printf(〃請輸入一個正整數(shù):〃);scanf(〃%d”,&N);getchar();printf(〃請輸入每行顯示的數(shù)的個數(shù):〃);scanf(〃斷T,K); /*(3)未加地址符,k應(yīng)改為&k*/getchar();printf(〃小于%d的素數(shù)如下:\n〃,N);for(i=2;i<N;i++)(if(isSuShu(i)==0)/*(4)條件表達錯,應(yīng)改為(isSuShu(i)=1)或(isSuShu(i))*/count=0;/*(5)本句應(yīng)改為:count++;或count+=l;*/count=0;printf(〃%d\t〃,i);if(count%K=0)printf(〃\n〃);})例三:/*(1)函數(shù)類型錯,/*(1)函數(shù)類型錯,int應(yīng)改為double*//*(2)等號寫錯,應(yīng)改為: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)應(yīng)去掉行末分號*/main();/*main();/*(4)應(yīng)去掉行末分號*/intn;printf("InputN:〃);scanf(z,%dzz,n); /*(5)未加地址符,n應(yīng)改為&n*/printf(/z\n%d!=%f\n,z,n,fun(n));/*(6)輸出格式%£應(yīng)改為%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]應(yīng)改為&a[i]*/scanf(〃%d〃,scanf(〃%d〃,&k);for(i=l;i<=k;i++)/*(2)循環(huán)初值應(yīng)改為:;0;*//*(3)循環(huán)條件應(yīng)改為:i<k;*/sum+=a[i];printf(,z\nsum=〃,sum);/*(4)少了輸出格式字符,應(yīng)改為:〃\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)循環(huán)初值應(yīng)改為:i=l;*/for(i=0;i<10;i++);/*(2)應(yīng)去掉行末分號*/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)行首或上一行末應(yīng)加大括號:{*//*(4)行末應(yīng)加:break;*/printf(,zTheresultis:\n〃);for(i=l;i<6;i++)printf(〃%d0numberis:\n〃,i+4,b[i]);/*(5)少了一個輸出格式字符,應(yīng)改為:〃%d……is:%d\n〃*/printf(〃\n〃);例六ttdefine"stdio.h〃/*(1)ttdefine應(yīng)改為:ttinclude*/fun(inta,b)/*(2)形參聲明錯,應(yīng)改為: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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論