English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

內容:
紐西蘭有一年電力供應不足,所以必須分區輪流停電,全國共分為十七個區,為了能以公平的方式輪流停電,決策者選定了一個隨機數 5,每次執行停電從第 1區開始,接下來是第 6 區,亦即以 5 為區的相隔進行停電,接著是第 11 區、第 16 區,因為只有17區,所以從頭開始輪,已經停過的就不用再停電了。所以數了5次(17, 2, 3, 4, 5),因此輪到第 5 區停電。整個停電的順序是:
1 6 11 16 5 12 2 9 17 10 4 15 14 3 8 13 7


但是這個決策者覺得這個隨機數 5 似乎不盡公平,所以他又選擇了三個數字,亦即 5, 6, 7, 8,希望能用抽籤,在這四種停電順序中選一種,你的任務就是寫一個程式,能列出這四種順序來。
要求:
1. 你必須建立一個函數來尋找下一個停電的區域,例如 PowerOff = findNextPowerOff(currentPowerOff, m),m= 5 or 6 or 7 or 8
2. 列印這四種停電順序
提示:
1. 你應該會用到整數陣列,不過要記得只有0~n-1的索引值可以用。

例如宣告:int powerOff[17]。

2. 請多使用debug的功能去追蹤你的程式。

http://group.kh.usc.edu.tw/teacher/liangk/Programming2006/project5.html這是原始網址
P.S 請依照她的要求寫 她是說1.6.11.16.5因為1用過ㄌ所以從2算17.2.3.4.5所以是5不是4.重點就是用過的數字不能用
還有這個問題只停留10天

2006-12-14 17:33:38 · 2 個解答 · 發問者 Anonymous in 電腦與網際網路 程式設計

2 個解答


#include
#include


#define TOTAL 17

int Pow[17];

int nextOff(int cur, int m)
{ int i;
for (i=0; i { if (++cur >= TOTAL) cur -= TOTAL;
if (Pow[cur]) i--;
}
Pow[cur] = 1;
return cur;
}


int main()
{ int c, i, m;

for (m=5; m<9; m++)
{ for (i=1; i<17; i++) Pow[i] = 0;
Pow[c=0] = 1;
for (i=1; i { printf("%3d", c+1);
c = nextOff(c, m);
}
printf("%3d\n", c+1);
}
system("PAUSE");
return 0;
}

2006-12-18 20:13:29 · answer #1 · answered by ? 7 · 0 0

這問題 2 ~ 3 天前在作業系統有人問過耶!
也是匿名喔!

有人回答後,就被刪除了!

現在又有人用『類似的標題』問『同樣的問題』,
且同樣是匿名,問題又只停留 10 天!
可見又是個拿了答案就殺問題的缺德鬼!

註:上一個問題叫〝求問C 問題〞;
    這一題叫〝求問C加加的 問題〞。
  拿了答案就殺/就要殺,是哪門子的求啊!?
  真是世風日下!

2006-12-14 20:55:48 · answer #2 · answered by ? 5 · 0 0

fedest.com, questions and answers