1. 注意大、小寫是兩個不同的變量。
如:int a=2;
printf("%d",A);
在編譯時會出現錯誤,認為A沒有定義。
2. 一定要注意分子式中分子的書寫。
如:有一個公式為c=5(f-32)/9,5、9整除結果為0,不論f取何值,其結果都為0。后來我把5改為5.0,再運行ok!另外,還有“%”是求余符號,兩個數必須要求都是整數,若是實數,必會出錯。所以一定要注意數學公式的書寫與C語言公式的區別。
3. 要注意“=”與“==”的使用。
“=”是賦值運算符,“==”是關系運算符。
如:if (a==x) a=x+2;
前者是進行比較,a是否和x相等,后者表示如果a和x相等,把x+2值賦給a。
4. 輸入輸出的數據類型與所使用的格式說明符不一致。
例:若a已定義為整型,b已定義為實型。
a=3;b=3.2;
printf("%f%d",a,b);
編譯時不給出錯誤提示,但運行結果與題意不符。
5. 文件名中不能出現空格。
若出現空格,就會出現這樣的錯誤提示:“Unable to open input file”。
6. 應注意分號(;)的使用。
在包含頭文件后面和main()后面以及自定義函數頭后面不能加分號。若是出現“;”,錯誤提示為:“Declaration syntax error”。
7.若程序中要用到一些庫函數,在main()前面必須要包含相應的頭文件。
如在程序里用到sqrt()函數,而在前面沒有包含頭文件math.h,在編譯時不會給出錯誤提示,但其運行結果是錯誤的。
8. 在定義變量時,數組名和變量名不允許重名。
如:float x[2],x=4.0;
9. 數組長度只能是常量,不能是變量。
如:int n=10,m[n];
定義方式是錯誤的。
10.注意“%s”與“%c”的使用。
前者是輸出字符串,后者是輸出單字符。
11.多個字符串的輸入,可以通過scanf函數和gets函數。
例如:scanf(" %s%s%s",str1,str2,str3),在多個字符串之間用一個或多個空格分隔;若使用gets函數,應為(gets(str1);gets(str2);gets(str3);)字符串之間用回車符作分隔。通常情況下,接受短字符用scanf函數,接受長字符用gets函數。而getchar函數每次只接受一個字符,經常c=getchar()這樣來使用。
12.注意字符與字符串的區別。
如:char c; c="a";這樣書寫是錯誤的。字符常量是由一對單引號括起來的單個字符,字符串常量是一對雙引號括起來的字符序列。C規定以"\0"作字符串結束標志,它是由系統自動加上的,所以字符串"a"實際上包含兩個字符:'a'和'\0',而把它賦給一個字符變量是不行的。
13.進行定義數組時,若想賦值,應直接賦值。
如:int a[5]; a[5]={1,2,3,4,5};這樣書寫是錯誤的而且也不容易檢查。根據需要,若需要5個變量,要求從a[1]開始到a[5],可以定義int a[6]。
14.注意if (表達式)與 while (表達式)中的圓括號( )不能省略,否則也會出現編譯錯誤。
15.在printf函數中,除了輸出字符串常量可以不用格式控制外,其余的都不能省略。
如:printf("china")這樣書寫是正確的,而printf(a)就是錯誤的。
16.要注意“,”與“;”的使用。
逗號一般有三個用途:第一,用于變量定義之間的間隔,如int x=0,y,z;第二,用于for 循環時多個變量初始化之間的間隔;第三,用于函數像printf 與scanf中格式控制與地址列表之間的間隔,其他情況下一般用分號。
17.注意scanf的使用。
若要輸入多個變量,一定要注意格式控制之間的間隔與輸入的字符或數值型數據之間的間隔要一致。如:scanf("%d,%d",&&a,&&b),應當這樣輸入數據“12,23”,如果scanf("%d %d",&&a,&&b),應當輸入“12 23”,中間有一個或多個空格都可以。
18.C語言中的標點符號都是半角標點符號。
總之,要想學好、掌握好一門程序設計語言,沒有什么好的快捷方法,只有不斷地練,不斷地實踐,在不斷地犯錯誤中積累經驗,實踐出真知。我相信,只要堅持不懈的努力,設計程序的能力會有很大的提高。