はい。これは課題であり、正直に言うと、私にとっては非常に頭の体操です.. プログラムの目標、または「問題」(数学の用語で見たい場合) は、2 つの数値を互いに割り算することです。整数と分数を互いに除算することができます。関数定義は次のようになります。
bool divide(int c1, int n1, int d1, int c2, int n2, int d2, char result[], int len)
c1、c2 - 整数
n1、n2 - 分子 1、分子 2
d1、d2 - 分母 1、分母 2
result[ ] - 回答を表示する文字配列
len - 結果で許可される文字数 []
私は単純に長い除算を使用してこの方法で答えを見つけますが、 double、float、またはstringを使用しないという制限があるため、アプローチに対するオプションがより制限されます。
幸いなことに、私は最終的な解決策にかなり近づいているので、次の動きについてアドバイスを求めたいと思います. これまでの私のプロセスは次のとおりです。
1) 各数を仮分数に変換する
2) 結果 1 * (1 / 結果 2 ) を取る
3) 解の整数部分を見つける (存在する場合)
4) (仮分数から) 分子 % 分母をとって、私が持っている混合分数の新しい分子を見つけます。
5) 私は今ここにいて、分母の基数 10 の倍数を見つけようとしているので、混合分数を 10 進形式で表すことができます。