0
所以這個函數只是在數組之間進行交換。 r
是陣列i
和l
是索引改變的長度。它給了我一個錯誤EXC_BAD_ACCESS(Code=1)
。數組參數指針錯誤?
void swap(int a[], int first, int second, int r) {
int tempp = a[first];
a[first] = a[second];
a[second] = tempp;
}
該函數生成數組的排列。
void permute(int a[], int l, int r) {
int temp[r];
int i;
if (l == r)
for (int k = 0; k < r; k++) {
printf("%d\n", a[k]);
}
else {
for (i = l; i <= r; i++) {
swap(a[r], l, i, r);
permute(a[r], l + 1, r);
swap(a[r], l, i, r);
}
}
}
所以函數接受來自main的輸入,並根據一些要求製作一個數組。
void perm_rec_1(int N, int nr_vals) {
int a[N], temp = nr_vals - 1;
int output[N];
for (int i = 0; i < N; i++) {
if (i >= nr_vals) {
a[i] = temp;
continue;
} else {
a[i] = i;
}
}
int i;
for (int i = 0; i < N; i++) {
printf("%d", a[i]);
}
permute(a[N], 0, (nr_vals) - 1);
}
@ M.M哪裏是OID? – Neyka
'互換(A [R]'應該給編譯器的消息。'一[R]'是一個'int',但該函數的第一個參數是'INT []'。注意一下編譯器說你代碼,並修復在消息中提到任何東西。 –
@MM那空隙只是忘的來信。 – Neyka