今天遇到一個問題,在寫主題板塊,共有21個主題類別方塊,可以存放主題,但是主題數是<=21的,所以想盡量不讓空閑的板塊連續,這樣看起來以至于板塊不那么空閑。
于是想先從奇數中挑選位置,然后再從偶數位置挑選,這樣能使空閑板塊盡量不連續。
例如:如果有5個板塊,3個主題,那么在1,3,5的位置放入主題。

一個小Demo如下:
1: #include <stdio.h>
2:
3: int arrary[21] = {0,0,0};
4:
5: int ChooseAnEmpty()
6: {
7: int j = 0;
8:
9: for(j=1;j<=21;j+=2)
10: {
11: if(arrary[j] == 0)
12: {
13: return j;
14: }
15: }
16:
17: printf("------\n");
18:
19: for(j=2;j<=21;j+=2)
20: {
21: if(arrary[j] == 0)
22: {
23: return j;
24: }
25: }
26:
27: printf("is full\n");
28: return -1;
29: }
30: int main()
31: {
32: int i,pos;
33:
34: for(i = 0; i<23; i++)
35: {
36: pos = ChooseAnEmpty();
37: if(pos == -1)
38: {
39: break;
40: }
41: printf("empty pos = %d\n",pos);
42: arrary[pos] = 1;
43: }
44: }