- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1函式与传阵列
5/18/2012
作業八
Due: 5/25/2012
1. 函式與傳陣列
1) 請寫一函式reverseArray ,此函式的目的在將所傳入
陣列之內容順序反轉(1, 2, 3 3, 2, 1) 。其原型宣告如
下:
void reverseArray(int n, int *array);
2) 請寫一函式showArray ,其目的在於將陣列內容秀出
來。其原型宣告如下:
void showArray(int n, const int *array);
3) 請利用如下頁之主程式及預期計算結果,來驗證你所
寫的函式正確性。
p.s. C++ 有內建的swap 函式,將傳入的兩個變數內容交換。
e.g.
int a[] = {1, 2, 3}; swap(a[0], a[2]); a[] = {3, 2, 1};
int p=4, q=3; swap(p, q); p==3, q==4;
1
5/18/2012
主程式與參考輸出
int main() {
int a[] = {1,2,3,4,5,6,7,8,9,10};
int b[] = {1,2,3,4,5,6,7};
reverseArray(10, a);
reverseArray(7, b);
showArray(10, a);
showArray(7, b);
return 0;
}
參考輸出
10 9 8 7 6 5 4 3 2 1
7 6 5 4 3 2 1
2. 發牌
此作業模擬電腦發撲克牌。主程式中:
• 首先以一陣列cards 儲存尚未洗牌的撲克牌,並呼叫函式init 將其內
容初始為0,1,2, … 51 等數字,用來代表不同之撲克牌(不含Joker) 。其
中0 – 12 對應到黑桃A,2,3,4, … K (10 以T 代表之) 、13 – 25 對應到紅心
A, 2, 3, … K 、26 – 38對應到方塊A,2,3,… 、依此類推。
• 接著,呼叫shuffle 函式,用來將之前已儲存之0, 1, 2, … 51 的順序打
亂,以模擬洗牌的動作。洗牌的模擬方式,最簡單快速快速的方法,
是重複進行:以亂數任選兩張牌,將其對調。舉例來說:若a[] =
{1,2,3,4,5,6,7};
– 1. 產生兩介於0 – 6 的亂數(e.g. 3, 6) ,
– 2. 將對應上位置的值對調(可利用swap 函式) {1,2,3,7,5,6,4}
– 重複步驟1 、2 多次後,即完成洗牌的動作
2
5/18/2012
2. 發牌
• 接著,利用deal 函式,秀出將cards 內所儲存已洗好的牌,發給4 個
人、每人8 張牌時,每個人的牌為何。
• 最後利用deal 函式,秀出將cards 內所儲存已洗好的牌,發給6 個人、
每人5 張牌時,每個人的牌為何。
#include iostream
#include string
#include ctime
#include cstdlib
using namespace std;
void init(int *cards);
void
文档评论(0)