程序代码:
#include<iostream>
#include<vector>
using namespace std;
int change(const int &a,const int &b)
{
static int d=1;
int e,g;
e=a;
g=b;
if(g<=1||g>16)
{
cout<<"请确认您所输入的数字是否正确!\n"<<endl;
}
else
{
vector<int> vec;
do
{
vec.push_back(e%g);
e=e/g;
}
while(e!=0);
cout<<"converted number:"<<endl;
for(int j=vec.size()-1;j>=0;--j)
{
switch(vec[j])
{
case 10:
cout<<'A';
break;
case 11:
cout<<'B';
break;
case 12:
cout<<'C';
break;
case 13:
cout<<'D';
break;
case 14:
cout<<'E';
break;
case 15:
cout<<'F';
break;
default:
cout<<vec[j];
}
}
cout<<"\n程序运行次数:\n"<<d++<<endl;
}
return 0;
}
int main()
{
int a,b;
for(;;)
{
cout<<"请输入您想转换的数:\n";
cin>>a;
cout<<"请输入您想转换的进制(大于1小于等于16):\n";
cin>>b;
change(a,b);
}
return 0;
}
我写的1到16之间任意进制的转换程序,你看一下!以前写的时候错了一点,现在好了!
[
本帖最后由 闭眼到天黑 于 2011-3-2 13:23 编辑 ]