我学的C++,我想要运行出这样的结果,要怎么办,我已经快崩溃了😭

img

进制转换是要思考一下怎么写,小练习就没有贯彻防御性编程思想了

img

#include <cmath>
#include <iostream>

using namespace std;

void PrintSeparationLine();

int ConvertToDecimalNumber(int octalNumber);

int ConvertToOctalNumber(int decimalNumber);

int main()
{
    int inputOption;
    int inputNumber;
    int convertResult;
    char isContinue;

    while (true)
    {
        PrintSeparationLine();
        cout << "    进制转换系统" << endl;
        cout << "1、八进制转换为十进制" << endl;
        cout << "2、十进制转换为八进制" << endl;
        PrintSeparationLine();
        cout << "请选择序号1或2:";
        cin >> inputOption;
        cout << "请输入欲转换的数据:";
        cin >> inputNumber;
        convertResult = inputOption == 1 ? ConvertToDecimalNumber(inputNumber) : ConvertToOctalNumber(inputNumber);
        cout << "转换为:" << convertResult << endl;
        cout << "是否继续转换?y/n:";
        cin >> isContinue;
        if (isContinue == 'n')
        {
            cout << "谢谢使用!再见!" << endl;
            break;
        }
    }
    return 0;
}

void PrintSeparationLine()
{
    for (int i = 0; i < 21; i++)
    {
        cout << "*";
    }

    cout << endl;
}

int ConvertToDecimalNumber(int octalNumber)
{
    int index = 0;
    int result = 0;

    while (true)
    {
        result += octalNumber % 10 * (int)pow(8, index);
        index++;
        octalNumber /= 10;
        if (octalNumber == 0) break;
    }
    return result;
}

int ConvertToOctalNumber(int decimalNumber)
{
    int temp = 0;
    int result = 0;
    while (true)
    {
        temp = temp * 10 + decimalNumber % 8;
        decimalNumber /= 8;
        if (decimalNumber == 0) break;
    }
    while (true)
    {
        result = result * 10 + temp % 10;
        temp /= 10;
        if (temp == 0) break;
    }
    return result;
}
#include<cstdio>

#include<iostream>

int pows(int x,int y)
{
    int ans = 1;

    for(int i = 1;i <= y;i ++)
    
        ans *= x;
        
    return ans;
}
int main()
{
    while(1)
    {
        puts("*********************");
        puts("进制转换系统");
        puts("1、八进制转换为十进制");
        puts("2、十进制转换为八进制");
        puts("*********************");
        printf("请选择序号1或2: ");
        int n,m;
        scanf("%d",&n);
        printf("请输入欲转换的数据: ");
        scanf("%d",&m);
        if(n == 1)
        {
            int ans = 0,cnt = 0;

            while(m)
            {
                ans = ans + pows(8,cnt++) * (m % 10);
                
                m /= 10;
            }

            printf("转换为: %d\n",ans);
        }
        if(n == 2)
        {
            int ans = 0,cnt = 0;

            while(m)
            {
                ans = ans + pows(12,cnt++) * (m % 10);
                
                m /= 10;
            }

            printf("转换为: %d\n",ans);
        }
        char s;
        printf("是否继续转换? y/n: ");
        std::cin>>s;
        if(s == 'n') break;
    }
    puts("谢谢使用!再见!");
}