我的**http;//tigerion.cn
這周有點忙,零散的時間只是想了一些不成熟的東西,但也班門弄斧,拿出來跟大家交流,嘿嘿,不要介意。
第乙個問題,我的出發點是這樣的:
陣列中的元素,由它的下標的關係,而形成一種天然的邏輯關聯,或是順序吧,這點性質很好用。
舉幾個簡單的例子
1 給出一堆數(無重複),範圍是1~100,要求將數按順序輸出
那麼就可以建立一da[101]的陣列,每個元素賦初值為零,然後將每乙個數n ,da[n]=1,再按順序輸出即可
本來是雜亂無章的數,由陣列下標建立 一種對映之後就變得有序,當然這種方法很侷限,這裡只是轉轉思路罷了。
2 做乙個發牌的程式。
將每乙個牌編號得到1~54號,對於四種花色的 牌1~52,可以按照%4的結果來區分花色,對於分牌也很簡單了。
模擬現實生活中分牌的過程,先洗牌,牌洗好後也分好了。因為n%m=1是第乙個人的牌,餘數為二為第二個人的牌.....
實現過程可以找乙個大小為54的容器,da[54],然後隨機給每乙個位置找乙個沒用過的牌,
牌分好後再按順序發給每乙個人就行了,若共m個人
第乙個人1,1+m,1+2m....
第二個 2,2+m,2+2m...
....
程式寫出來吧
//給三個人發牌的程式
#include
#include
#include
#include
#include
#include
int main()
;//花色
char sig=;
for( i=0;i<54;i++) loc[i]=0,flag[i]=0;//初始化
i=0;
srand(time(null));
int temp;
while(i<54) //洗牌
int j=0,key;
for(i=0;i<54;i++) //發牌,順便排序
{temp=j;
key=i%3;
while(temp>0&&loc[i]
#define max 100
using namespace std;
int main()
{int cir[max],m,n;
cout<<"please input n m:";
cin>>n>>m;
if (n<1||n>100||m<2)return 0;
for(int i=0;i1)
{count=1;
while(countnext即可
然而它倒底有什麼用處呢,我還沒找到好的例子,或許也派不上大的用場,同上面一樣,轉轉思路罷了。
只是想到了乙個簡單的例子。
做乙個rpg遊戲,每乙個人物構建 乙個物件,比方說從今天零晨1點開始,伺服器將陸陸續續上線的人建立乙個鍊錶,
然後到五點開始分配任務,從五點開始,位置排序成斐波那數列的去挖礦去,其它人去群怪,這時候建立乙個臨時的指標
陣列,與鍊錶搭建關聯,便很容易向玩家發布指令了。
然而還是很有侷限性,只能算是小聰明罷了。
希望跟 大家多提提意見,多多交流!
我的**http://tigerion.cn
c語言 妙用
c語言中 是什麼意思?a b怎麼理解?在 c語言中可能表示兩種運算子。如果運算物件只有乙個,且為右運算元,那麼 為取位址運算子,結果為操作物件的位址。例如 a 假設 a是乙個左值,即具有具體的可訪問的位址 結果為 a的位址。如果運算物件有兩個,那麼 表示位與運算。結果中的每乙個二進位制位等於兩個運算...
C語言 異或 的妙用
異或 位運算符號,相同的位置0,不同的位置1 例 0101 0001 0100 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?例 輸入 2 2 1 輸出 1 輸入 2 3 3...
C語言 巨集定義的妙用
在 中為了提高可讀性,把一些數字進行巨集標識化,同時也方便後續修改 一處修改,到處生效 define year count sec 365 24 60 60 ul static u32 do and retry try cnt define do and retry func,target,try,...