[問題] 將數筆有規則的資料存入二維陣列
遇到的問題: (題意請描述清楚)
我想將下面這些資料自動地存到一個二維陣列中,
0 1 2 3 4
0 1
1 1
2 1 這階段每次取1個位置,並設為1
3 1
4 1
5 1 1
6 1 1
7 1 1
8 1 1
9 1 1
10 1 1 這階段取每次取2個位置,並設為1
11 1 1
12 1 1
13 1 1
14 1 1
15 1 1 1
16 1 1 1
17 1 1 1
18 1 1 1
19 1 1 1 這階段取每次取3個位置,並設為1
20 1 1 1
21 1 1 1
22 1 1 1
23 1 1 1
24 1 1 1
25 1 1 1 1
26 1 1 1 1 這階段取每次取4個位置,並設為1
27 1 1 1 1
28 1 1 1 1 1 這階段取每次取5個位置,並設為1
我要宣告一個二維陣列來存上面的資料
array[100][5]; // 預設值皆為0
由於無法預知總共會產生幾筆資料,所以預設最大為100筆,
從上述例子推知...
第21筆資料array[20][5]={1, 0, 0, 1, 1}
第29筆資料array[28][5]={1, 1, 1, 1, 1}
希望大家看得懂我的問題,
我想破了頭都無法正確地將上述資料存到陣列中,
不知道各位先進能否指點迷津,
感激不盡~
謝謝ADF兄的建議,
使用prev_permutation可以完全解決我的需求,
程式碼如下:
int a[5];
int array[100][5];
int num = 0;
for(int i=0; i<100; i++)
for(int j=0; j<5; j++)
array[i][j] = 0;
for(int i=0; i<5; i++)
a[i] = 0;
for(int i=0; i<5; i++)
{
for(int j=0; j<(i+1); j++)
a[j] = 1;
do {
for(int j=0; j<5; j++)
{
array[num][j] = a[j];
cout << a[j] <<" ";
}
num++;
cout << endl;
}while (prev_permutation(a,a+5));
}
推
12/28 11:04, , 1F
12/28 11:04, 1F
→
12/28 11:05, , 2F
12/28 11:05, 2F
→
12/28 11:05, , 3F
12/28 11:05, 3F
→
12/28 11:06, , 4F
12/28 11:06, 4F
→
12/28 11:07, , 5F
12/28 11:07, 5F
→
12/28 11:07, , 6F
12/28 11:07, 6F
→
12/28 11:07, , 7F
12/28 11:07, 7F
→
12/28 11:08, , 8F
12/28 11:08, 8F
推
12/28 11:10, , 9F
12/28 11:10, 9F
→
12/28 11:10, , 10F
12/28 11:10, 10F
→
12/28 11:10, , 11F
12/28 11:10, 11F
→
12/28 11:11, , 12F
12/28 11:11, 12F
推
12/28 11:12, , 13F
12/28 11:12, 13F
→
12/28 11:12, , 14F
12/28 11:12, 14F
→
12/28 11:13, , 15F
12/28 11:13, 15F
推
12/28 11:23, , 16F
12/28 11:23, 16F
推
12/28 13:11, , 17F
12/28 13:11, 17F
→
12/28 13:17, , 18F
12/28 13:17, 18F
→
12/28 13:18, , 19F
12/28 13:18, 19F
※ 編輯: HUGOZVC 來自: 208.123.162.2 (12/28 13:40)