因此,我编写了一个小型应用程序,它将十进制转换为八进制,并且仅向后输出正确的答案。例如,如果转换的答案为17,则应用程序会将其显示为71。
任何帮助将非常感激。

;
    int _tmain(int argc, _TCHAR* argv[])
{
int octal, total = 0;
    cout<< "please enter a decimal: ";
    cin >> octal;
    while(octal > 0)
    {
                total = octal % 8;
        octal /= 8;
        cout << total;
    }
    cout << endl;
        _getche();
        return 0;
}

最佳答案

您需要求和,然后打印最终结果,例如

int n=0;
while (octal > 0) {
  total += (pow(10,n++))*(octal % 8);
  octal /= 8;
}
cout << total << endl;

由于首先要打印最小的位,所以仅打印数字将以相反的顺序打印它们。

如评论中所述,以上机制仅适用于转换为小于10的基数。

10-02 01:17