私は助けが必要です。私は、単純に文字列(すべての数値)を分割し、その合計が9未満であるかどうかを調べる文字を追加するC++の再帰関数を持っています。これまでのところ、私の条件が満たされたときに終わりまで機能しているすべてのものは、もう一度関数を呼び出します。これは明らかに私がそれを割り当てようとしている変数の値を混乱させます。私は多くの参照を参照し、私の構文が正しいようですね?私の関数がなぜ自分のものを最後に呼び出すのかに関する助け。条件が満たされるとC++再帰関数が終了しない
///////////////////////////////////////////////////////////////////////////// ///////////
int finalNumber =0;
// set finalNumber
finalNumber = sumTotal(sumInput);
int sumTotal(int sumInputToString)
{
stringstream strToInt;
string convertedInt;
strToInt << sumInputToString;
convertedInt= strToInt.str();
int sum = 0;
for(int i = 0; i < convertedInt.length(); i++)
{
sum += (int)convertedInt[i] - 48;
}
if (sum > 9)
{
sumTotal(sum);
}
return sum; //ONCE SUM IS LESS THAN 9,which is what i want,
//MY PROGRAM AUTOMATICALLY JUMPS UP TWO LINES does it one
//more time than it will escape.
}
私は他に私の復帰を入れて{}と私のリターンが私の場合になりますので、私の場合は他の条件をスワップからすべてを試してみました。どんな助けでも大歓迎です。
ありがとうございました。
@ahenderson - それは逃げるモードですべてを行います。 BTW - 再考を避けてください。通常は涙で終わります –
あなたは、プログラムが間違った価値を持って終了するか、ちょうど立ち往生していると言っていますか?値が10より小さい場合、それをもう一度呼び出すと、結果を変更してはなりません。 –