关于#c++#的问题:输入原数进制,输入一个左边界数值(下记作a),一个右边界数值(下记作b),一个右边界数值(下记作b),指定转换源进制类型和目标进制类型

进制数
编写程序,输出任意两个数之间每个数值的二进制、三进制、八进制、十进制、16进制。输入原数进制,按照进制要求,输入一个左边界数值(下记作a),一个右边界数值(下记作b),指定转换源进制类型和目标进制类型,针对 [a, b]区间内的每个数值n,进行相应进制转化,并输出转换结果。
比如,输入
选择原数十进制
起始数值:2
终止数值:4

指定转换成二进制:
2 = 0010
3 = 0011
4 = 0100
数值 2 3 4
二进制 0010 0011 0100
注意:非十进制的输入输出问题,参考计算机上的计算器。
进阶:设置约束条件,比如转换成二进制后不超过8位,且高三位为100的数值。


#include <iostream>
using namespace std;
void fun(int c,int m)
{
    int tt,i;
    char e[40]={0};
    i = 0;
    if (m == 0)
        return;
    do
    {
        tt = c%m;
        if(m == 16 && tt >= 10)
            e[i++] = 'A' + (tt - 10);
        else
            e[i++] = '0' + tt;
        c = c / m;
    } while (c != 0);
    for (int j = i - 1; j >= 0; j--)
    {
        cout << e[j];
    }
    cout << endl;
    return ;
}

int main()
{
    int a,b;
    cout << "起始数值:" ;
    cin >> a;
    cout << "终止数值:";
    cin >> b;
    cout << "制定转换为二进制:"<< endl;
    for(int i = a;i<=b;i++)
        fun(i,2);
    cout << "指定转换为三进制:" << endl;
    for(int i = a;i<=b;i++)
        fun(i,3);
    cout << "指定转换为八进制:" << endl;
    for(int i = a;i<=b;i++)
        fun(i,8);
    cout << "指定转换为十六进制:" << endl;
    for(int i = a;i<=b;i++)
        fun(i,16);

    return 0;
}