入力番号、例 891 を取り、これらの各番号を配列に入力するプログラムを作成しようとしていまし
x[0] = 8
たx[1] = 9
。x[2] = 1
メソッドを実装するために再帰を使用しようとしていました:
void calc(int val, int k)
{
static int number = val;
if((val/10))
{
calc(val/10, k--);
}
int x = number - val*pow(10, k);
cout << x << ", k = " << k << " and number = " << number << endl;
}
int main()
{
//write a program that converts a number to string
int number;
cout << "Enter a number: ";
cin >> number;
number = 891;
int k = 0;
//while(number/10 != 0)
k = 2;
calc(number, k);
}
基本的に、再帰関数を使用して数値を細かい部分に分解しようとしていますが、(in val
): 91, 1, -8019 という出力が得られます。これを改善する方法はありますが、構造を維持していますか?