約瑟夫生者死者小游戲

規(guī)則

輸入玩家數(shù)量,自動編號。輸入死亡編號,根據(jù)死亡編號殺人。每殺死一人,接著后面的人重新編號,繼續(xù)按編號殺人。

實現(xiàn)

1.輸入數(shù)量并編號

    printf("請輸入?yún)⑴c人數(shù):");
    scanf("%d", &count);

    for(int i = 0; i < count; i++){
        num[i] = i+1;
    } 

其中,,定義count,num【】
int count = 0 ; //保存輸入的人數(shù)
int num[50] = {}; //保存每個人的編號

2.輸入要殺的人的編號

 printf("請輸入要殺的人的編號:");
    scanf("%d", &killNum); 

3.開始游戲

    int current = 0; //記錄當前報數(shù)的位置 
    int totalKilled = 0; //記錄當前死亡人數(shù) 
    for(int i = 0; i < count; i++){
        //i指向的這個人開始報數(shù) 
        if(num[i] != KILLED){
            current++;
        }
        
        //判斷當前編號是不是死亡編號
        if(current == killNum){
            printf("死亡編號%d \n", num[i]); 
            
            //殺掉
            num[i] = KILLED;
            
            //還原 
            current = 0;
            
            totalKilled++;
            
            //當還剩一個的時候就退出循環(huán) 
            if(totalKilled == count-1){
                break;
            } 
        } 
        
        //判斷是否到末尾了
        if (i == count-1){
            i = -1;
        } 
    }

其中num[i] != KILLED等多處用到了KILLED,也就是在前面進行了宏定義,也就是取別名

  • define,不僅可以為類型定義別名,也能為數(shù)值定義別名。為數(shù)值定義別名時達到了定義一個常量的效果。

  • 使用#define的好處在于,一方面加強了代碼的可讀性,另一方面是增強可操作性,便于代碼修改
    (當多處使用define定義的別名時,別名對應(yīng)的值需要修改時,可以直接在#define處快速修改)

4.輸出活著的人的編號

for(int i = 0; i < count; i++){
        if(num[i] != KILLED) {
            printf("%d ", num[i]);
         }
 } 



到此,這個demo就做好了
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容