0
私はこの宿題をしています。私のプログラムが本当にうまくいかない理由を理解していません。再帰を使用してブール値プログラムをプログラミングする
私は、数字と桁をユーザーから受け取ります(入力はOKと見なすことができます)。 と数字が偶数の時間内に表示される場合は1を出力します。奇妙な時間が表示される場合は、0を出力します。 ブール値の再帰関数を使用する必要があります。
誰かが私に何か間違っていると教えてもらえますか?
#include <iostream>
using namespace std;
bool isEven(int num, int dig);
void main()
{
bool res;
int num, dig;
cout << "Please enter a number and a digit" << endl;
cin >> num >> dig;
cout << isEven(num, dig);
}
bool isEven(int num, int dig)
{
bool res;
int counter = 0;
if (num < 10)
{
if (counter % 2 != 0)
res=false;
else
res=true;
return res;
}
else
{
res=isEven(num/10, dig);
if (num % 10 == dig)
counter++;
return res;
}
}
[デバッガを使用することを学ぶ](HTTPS ://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。このプログラムの何が間違っているかを数分で表示し、今後数時間を節約できます。 – hnefatl
'void main'は無効であることに注意してください。C++。代わりに 'int main'を使用してください。 – hnefatl
ところで、数字で演奏するときは、数字を文字列にしておくことをお勧めします。各桁は、「0」を減算することによって、文字から数値に変換することができます: 'int digit = number_as_text [i] - '0';' –