1. 程式人生 > >1、專案6-撞錯練習

1、專案6-撞錯練習

1. 任務描述
在能正確執行的程式基礎上,“搗亂”製造些錯誤,在C::B中編譯,觀察並記錄錯誤提示,積累面對錯誤的經驗。

下面是可以“製造”的錯誤:
(1)將第6行sum=a+b; 一行末尾的分號去掉
(2)將第4行int a,b,sum;改為int a, b;
(3)將第7行printf寫為 Printf,注意p和P不同
(4)將第6行sum=a+b; 改為sum=ab; 即漏寫了加號
(5)將第9行程式最後的右花括號 } 刪除
(6)將第4行int a,b,sum; 改為imt a,b,sum;

2. 程式碼實現

#include <stdio.h>
int main()
{
	int a, b, sum;
	scanf("%d %d",&a,&b);
	sum = a + b
	printf("sum= %d",sum);
	return 0;
} 

3. 執行結果

(1)將第6行sum=a+b; 一行末尾的分號去掉
①錯誤提示:
在這裡插入圖片描述
②分析與解決:在 printf 前面新增 ; 即可。

(2)將第4行int a,b,sum;改為int a, b;
①錯誤提示:
在這裡插入圖片描述
②分析與解決:新增對變數 sum 的宣告。

(3)將第7行printf寫為 Printf,注意p和P不同
①錯誤提示:
在這裡插入圖片描述
②分析與解決:printf 寫成 Printf 後,編譯器把它看作變數,但是程式裡沒有用到這個變數,我們看到這樣的提示應該清楚是printf 關鍵字寫錯了,把P改為p就可以。

(4)將第6行sum=a+b; 改為sum=ab; 即漏寫了加號


①錯誤提示:
在這裡插入圖片描述
②分析與解決:編譯器說變數 ab 沒有宣告,這裡的 ab 是一個整體,回去看程式就會發現漏寫 + 了。另外,ab 在程式碼裡出現時永遠表示一個變數,不代表 a 和 b 相乘,這就提醒我們在寫乘法運算表示式的時候一定不能漏掉 * (即a*b)。

(5)將第9行程式最後的右花括號 } 刪除
①錯誤提示:
在這裡插入圖片描述
②分析與解決:根據提示,在程式最後加上反大括號 } 。

(6)將第4行int a,b,sum; 改為imt a,b,sum;
①錯誤提示:
在這裡插入圖片描述
②分析與解決:可以看到,這時編譯器把 imt , a, b, sum,全部當做變數來處理了,但是程式中用到的變數只有 a, b, sum, 再看程式的時候就可以發現 int 被寫成 imt 了,改回來程式就可以正常執行。

4. 心得
(1)編譯程式出現錯誤時,應該立刻檢視錯誤提示,對於編譯環境給出的語法錯誤之類的問題可以按照提示迅速改正;對於一些邏輯上出錯導致程式無法執行的情況,就需要重新整理思路,分析問題根源了。
(2)有可能會遇到編譯可以通過的存在錯誤的程式,那時直面問題、冷靜分析就更加重要了。