規(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]);
}
}