今天遇到一个问题,在写主题板块,共有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: }