上機內容:c程式的編寫和執行
上機目的:掌握簡單c程式的編輯、編譯、連線和執行的一般過程
ps:借鑑了同學和網上的思路,感謝。
我的程式:
/*
* 程式的版權和版本宣告部分:
* 檔名稱:test.c
* 作 者:容瀟軍
* 完成日期:2020 年 2 月 3 日
* 版 本 號:v1.0
* 對任務及求解方法的描述部分:
* 輸入描述:無
* 問題描述:請設計乙個隨機洗牌系統,將52張除大小王外的撲克隨機發給4個人 ,並對每個 人手中的牌進行排序後輸出。
排序規則:先按花色排,依次為黑桃、紅桃、梅花、方片,同花色的按點數從小到大排。其中,點數a視作點數1。
輸出格式:每人佔1行,相鄰兩張牌之間用1個空格分開。
* 程式輸出:略
* 問題分析:略
* 演算法設計:略
*/#include #include#include#include#includeusing namespace std;
int main()
}for(i=1;i<=13;)
}for(i=1;i<=13;)
}for(i=1;i<=13;)
}for(i=1;i<=12;i++)//排序
for(j=1;j<=12-i;j++)
}for(i=1;i<=12;i++)
for(j=1;j<=12-i;j++)
}for(i=1;i<=12;i++)
for(j=1;j<=12-i;j++)
}for(i=1;i<=12;i++)
for(j=1;j<=12-i;j++)
}for(i=1;i<=13;i++)//花色賦值
for(i=1;i<=13;i++) printf("%d-%d ",play1[i],code1[i]); printf("\n");//輸出
for(i=1;i<=13;i++) printf("%d-%d ",play2[i],code2[i]); printf("\n");
for(i=1;i<=13;i++) printf("%d-%d ",play3[i],code3[i]); printf("\n");
for(i=1;i<=13;i++) printf("%d-%d ",play4[i],code4[i]); printf("\n");
return 0;
}
執行結果:
心得體會
進一步熟悉了c++與c語言。
知識點總結
陣列運用,隨機函式,布林值以及其初始化。
隨機洗牌演算法
問題 給定乙個有序序列1 n,要你將其完全打亂,要求每個元素在任何乙個位置出現的概率均為1 n。解決方案 依次遍歷陣列,對第n個元素,以1 n的概率與前n個元素中的某個元素互換位置,最後生成的序列即滿足要求,1 n的概率可通過rand n實現。見如下程式 void swap int p,int q ...
隨機洗牌演算法
先看看肖舸老師的文章 隨機洗牌演算法複雜度的比較例項 其實我最初想到的也是那3個方法 1判斷生成的隨機數有沒有重複,2.生成一張布林表,3.雙隨機數。下面給出我的演算法 include include include using namespace std void randcard vector,...
shell實現洗牌隨機
洗牌問題 洗一副撲克,有什麼好辦法?既能洗得均勻,又能洗得快?即相對於乙個檔案來說怎樣 高效率的實現亂序排列?關於洗牌問題,其實已經有了乙個很好的shell解法,這裡另外給三個基於awk的方法,有錯誤之處還請不吝指出。方法一窮舉 類似於窮舉法,構造乙個雜湊來記錄已經列印行出現行的次數,如果出現次數多...