新人C语言问题求教!!!!!!!!!!

编写十进制数到二进制、八进制、十六进制间的转换程序。要求:键盘输入一个十进制的数,输出其对应的二进制、八进制、十六进制数。小数部分可以只输出8位以内

//把x进制的数字转换成y进制的数字,s就是要转换的数字,返回的就是结果
string transform(int x,int y,string s )
{
    string res = "";
    int sum=0;
    for(int i=0;i<s.length();i++)
    {
        if(s[i] == '-')continue;
        if(s[i] >= '0' && s[i] <= '9')
        {
            sum = sum*x+s[i]-'0';
        }
        else
        {
            sum = sum*x+s[i]-'A'+10;
        }
    }
    while(sum)
    {
        char tmp = sum % y;
        sum /= y;
        if(tmp<=9)
        {
            tmp += '0';
        }
        else
        {
            tmp = tmp -10+'A';
        }
        res =tmp+res;
    }
    if(res.length() == 0)res = "0";
    if(s[0] == '-')res = '-' + res;
    return res;
}