注册 登录
编程论坛 C++教室

这是一道将任意进制数转换为10进制数的程序,请问为什么单单转换13进制数错了

lili3499 发布于 2016-08-21 19:27, 2457 次点击
这是一道将任意进制数转换为10进制数的程序,请问为什么单单转换13进制数错了(大于20的时候)?
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
    int z,r,cc=0,n,result=0;
    cin>>z>>n;  //z表示要转换的数,n表示进制数
    do
    {
        r=z%10;z=z/10;  
        if(r>=n) break;
        result+=r*pow(n,cc);
        cc++;
    }while(z!=0);
    cout<<result;
    return 0;
}
4 回复
#2
rjsp2016-08-22 08:35
编译失败,你是怎么运行的?

pow(n,cc) 编译器不知道该调用哪个重载函数
#3
rjsp2016-08-22 08:38
你用什么类型存储结果?或者这么说吧,对于十进制的25,转换为13进制后,你想输出什么?

[此贴子已经被作者于2016-8-22 10:02编辑过]

#4
sbwl2016-08-23 11:34
我试了一下,没有错呀
#5
lili34992016-08-30 17:34
哦,谢谢,我重写了pow函数就可以了
1