1. 程式人生 > >C語言程式設計學習製作最好玩的報數遊戲

C語言程式設計學習製作最好玩的報數遊戲

C語言是面向過程的,而C++是面向物件的C和C++的區別:C是一個結構化語言,它的重點在於演算法和資料結構。C程式的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制)。C++,首要考慮的是如何構造一個物件模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取物件的狀態資訊得到輸出或實現過程(事務)控制。 所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設計這個概念已經被融入到C++之中 ”。

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

在這裡插入圖片描述

一提到報數,可能大家可能會在第一時間內想到大學軍訓的美好時光,嚴厲的教官讓我們從頭到尾依次的報數。
在這裡插入圖片描述

小編推薦一個學C語言/C++的學習裙【 玖四捌,玖伍四,四捌四 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多幹貨和技術資料分享!雖然剛開始很討厭教官,為什麼訓練的時候這麼嚴厲,一個個都累的要死,但是當軍訓快結束的時候大家反而都挺捨不得的了,人就是這麼奇怪的動物,(順帶默默地懷念一下以前的教官)。

不扯遠了,今天的報數遊戲呢,和軍訓時候教官讓我們依次的報數不一樣,我們要做的報數遊戲呢,是選擇一些人站成一圈,從第一個開始順時針開始報數,一圈之後之後報數停止,念出報到數的人則要出局,然後重新開始下一輪,周而復始,依次計算出每一輪誰會出局,直到剩下最後一個人為止!

在這裡插入圖片描述

(咳咳,素材圖是我畫的,沒找到具體相關的圖片,大家將就一下)

玩法呢,就如上面解說的一樣,輸入玩這個遊戲的人數和報到數,然後程式就會計算出每輪所淘汰的那個人,最終留下倖存者(這人肯定運氣好,去買注彩票也是極好的)!
在這裡插入圖片描述
下面看程式碼吧:/以迴圈佇列的資料結構實現時間複雜度T(n)採用迴圈佇列資料結構,使得每次對陣列的訪問次數減少到最少
/#include#includeint main(){int i = 0, num = 1, die = 0, front, rear, temp = 0;while (num != 0){printf(" 輸入人數,小於零退出:");scanf("%d", &num);printf(" 輸入報到數:");scanf("%d", &die);int *cycle = (int *)malloc((num + 1) * sizeof(int));for (i = 0; i <= num; i++){cycle[i] = i;}front = 1;rear = num;i = 1;while (front != rear)

在這裡插入圖片描述

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

{temp = (rear + 1) % (num + 1);cycle[temp] = cycle[front];front = (front + 1) % (num + 1);if (i == die){i = 1;printf("%d出隊 ", cycle[temp]);}else{i++;rear = (rear + 1) % (num + 1);cycle[rear] = cycle[temp];}}printf("倖存者是%d ", cycle[front]);free(cycle);num = 0;}return 0;}

在這裡插入圖片描述

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

其實這段程式碼很簡單,並不是很難,只是大家學習C語言之後卻沒有學會怎麼運用所學知識的思想,也就是所謂的 “ 我能看懂程式程式碼是怎麼執行的,可是,程式是怎麼設計出來的就完全懵逼了。” 成了只會看而不會寫的人!

這些是C/C++能做的伺服器開發工程師、人工智慧、雲端計算工程師、資訊保安(黑客反黑客)、大資料 、資料平臺、嵌入式工程師、流媒體伺服器、資料控解、影象處理、音訊視訊開發工程師、遊戲伺服器、分散式系統、遊戲輔助等

在這裡插入圖片描述