Mit der Funktion von Generate all sequences of bits within Hamming distance t erfüllt ist:rekursive Funktion Beenden, wenn ein dynamischer Zustand
void magic(char* str, int i, int changesLeft) {
if (changesLeft == 0) {
printf("%s\n", str);
return;
}
if (i < 0) return;
// flip current bit
str[i] = str[i] == '0' ? '1' : '0';
magic(str, i-1, changesLeft-1);
// or don't flip it (flip it again to undo)
str[i] = str[i] == '0' ? '1' : '0';
magic(str, i-1, changesLeft);
}
Ich möchte die rekursive Funktion beenden und mit dem Anrufer Funktion zurück, wenn eine bestimmte Bedingung auftritt (wenn es der Fall ist). Es ist also meine rekursive Funktion, wenn ich Stimmen höre, die ihr sagen könnten, dass sie aufhören soll!
Es geschieht nur nachstr
gedruckt wird, hier:
if (changesLeft == 0) {
printf("%s\n", str);
int quit_now = voices(str);
return;
}
Wie dies (stoppen die Rekursion Entfaltung und Rückkehr in die Funktion Anrufer) tun?
Versuch:
if (i < 0 || quit_now == 1) return;
scheint nur die Ausführung und nie enden zu blockieren!
PS - Ich bin auch in c alten Methoden interessiert.
Haben Sie versucht, goto: anstelle der Rückkehr? – hbagdi
@hbagdi das schwarze Schaf? : O Ich habe es nie angerührt, aber wenn du eine Antwort postest, die beweist, dass es nützlich sein kann, wäre ich bereit zu .... Ich bin jetzt über 21 Jahre alt !!! =) // habe nicht verstanden, dass das Trolling war:/ – gsamaras
Nicht. Sie trollen dich. – paddy