1.vector使用不当,vectorarr;,这一句没有指定arr的大小,所以默认是0,后面用[]访问的时候就越界了,
由于预先不能确定转换后的位数,所以改成pushback(),
while循环执行完后arr数组里就是转换后的数,但是是逆序的,需要从后往前cout,
2.powed函数不知道要干什么,是个死循环,也会导致越界
void print(int num, int base);
int main()
{
int x = 20;
int y = 8;
print(x, y);
return 0;
}
void print(int num, int base)
{
int fine = 0;
int counter = 0;
cout << "Now decimal system is " << num << endl;
vector<int>arr;
int fin = 0;
while (num != 0)
{
fine = num%base;
num = num / base;
arr.push_back(fine);
}
for (int i = arr.size() - 1; i >= 0; --i)
cout << arr[i];
}