for
ループnn
の値は、ループを終了した後に0
になります。私はそれがループで説明されているように増加することを期待しました。終了後にnn
を保存するにはどうすればよいですか?forループ内の値はインクリメントしません
void branch(int *numbers, int left) {
Int nb, nn;
nb = 0;
nn = 0;
if (left != 0)
for (int branchn = 1; branchn <= left; branchn++) {
for (int index = 1; index <= branchn; index++) {
*(buffer + nb) = *(buffer + nb) * 10 + *(numbers + nn++);
printf("%d\n", nn);
}
nb++;
length++;
branch(numbers, left - 1);
}
else {
branchop(length--);
nb--;
}
}
「静的」にすることができます。あるいは、関数にパラメータとして渡す方が良いでしょう。あるいは、より効果的なコードを取り除いて、テールを最適化してもしなくてもよく、単純なforループで置き換えることができます。 – Lundin