當前位置:
首頁 > 最新 > C語言/C加加編程學習—坦克大戰小遊戲製作代碼

C語言/C加加編程學習—坦克大戰小遊戲製作代碼

C語言是面向過程的,而C++是面向對象的

C和C++的區別:

C是一個結構化語言,它的重點在於演算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制)。

C++,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態信息得到輸出或實現過程(事務)控制。 所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為「 設計這個概念已經被融入到C++之中 」。

C與C++的最大區別:在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為「 設計這個概念已經被融入到C++之中 」,而就語言本身而言,在C中更多的是演算法的概念。那麼是不是C就不重要了,錯!演算法是程序設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,「C加上好的設計」也能寫出非常好的東西。

文章中講的東西他們都看懂了

但具體到自己寫代碼的時候卻完全不知道從何入手

其實看懂知識點常式和真正學會寫代碼之間相差了好幾條街

我一再強調

學編程沒有捷徑

只有老老實實地敲代碼

接下來以訓練為主

小編推薦一個學C語言/C++的學習裙【 六九九,四七零,五九六 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多乾貨和技術資料分享!

1. 題目分析

上面這張圖就是楊輝三角,相信大家在中學數學課中學習過。它實際上是二項式(a + b)的n次方展開後各項的係數排成的三角形,它有如下特點:

每行左右兩邊都是1

從第二行起,中間的每一個數是上一行里相鄰兩個數之和

第n行有n個數字

2. 解法一

看到這個問題,最容易想到的是創建一個二維數組。之後像填表一樣把每一行的數據依次填進二維數組中。如圖所示:

楊輝三角二維數組

2.1 二維數組初始化

首先,我們需要創建一個二維數組(我們以10 * 10的二維數組為例),全部元素初始化為0,之後把所有1的位置填上。代碼如下:

執行結果:

執行結果

這段代碼中需要注意:

用宏MAX定義數組長度,方便改寫

數組初始化為0

列印時使用「%5d」,防止後面數字位數太多破壞列印格式

2.2 計算剩餘單元格

代碼如下:

這段代碼中需要注意:

從第三行開始計算(i = 2)

每一個空格的內容都是它左上方和上方兩個元素之和

2.3 最終結果

於是我們得到了完整的程序:

小編推薦一個學C語言/C++的學習裙【 六九九,四七零,五九六 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多乾貨和技術資料分享!

執行結果如下:

執行結果

最終列印形式和楊輝三角還有距離,請大家自己思考一下,如何把這些數字列印成標準的楊輝三角格式。

這個解法是最樸素的方法,一般大家都能想到。我們要做的只是把這個方法用代碼實現而已。在真正的程序設計工作中,往往都是這樣先相處樸素解法,之後再分析哪些環節可以優化。下面我們就看看這個方法能否優化。

3. 解法二

解法一種兩組for循環看似比較冗餘,我們希望能夠用一組循環完成所有工作。

執行結果完全相同。此解法把填寫數字1的工作放入循環中,減少了一個循環。

4. 解法三

解法二中的兩組循環其實都是對二維數組的遍歷,第一遍填數字,第二遍列印。那我們能不能一次遍歷就完成既填空又列印的動作呢。請看下面這段代碼:

5. 解法四

解法三還能優化嗎?當然可以,我們最終的目的是列印,並非保存,那麼我們其實沒有必要用一個二維數組把所有的數字保存起來。我們只需要在列印的時候讀取上一行的內容,同時計算出當前行內容保存起來即可。那麼我們試著用兩個一維數組來完成。

小編推薦一個學C語言/C++的學習裙【 六九九,四七零,五九六 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多乾貨和技術資料分享!

這段代碼的執行效率很高,存儲空間使用的也比較少。但可讀性相對差一些。我們用了兩個數組array1和array2,又用了兩個指針來管理這兩個數組。為什麼不直接用數組名操作呢,因為兩個數組的使用時交替進行的,一個保存當前行,一個保存上一行。

這個解法難度比較大,初學者可以先不做了解。如果留言中需要具體講解的人數多,我會在下一篇中重點講解。

程序設計千變萬化,這道題也遠不止這四種解法。請大家在學習這四種的同時自己思考新的方法。

6. 課後練習

今天的課後練習題出個簡單的,請編程列印出9*9乘法表。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小辰帶你學知識 的精彩文章:

C語言/C加加編程學習—代碼訓練之神奇星空動態繼承

TAG:小辰帶你學知識 |