我写的进制转换,为什么9进制转换总是出错,结果成了9进制数和7进制数的组合输出了??程序可能有点低级,我多注释一下
#include <iostream>#include <cstdio>
#include<math.h>
using namespace std;
int fanzhuan(int a)//因为进制中间运行数是反的,该函数用来翻转数字顺序
{
int c,d=0;
while(a!=0){
c=a%10;
a=(a-c)/10;
d=d*10+c;
}
return d;
}
int qizhuanhuan(int a)//7进制转换函数
{
int b,d,c;
while(a!=0)
{
b=a%7;
a=a/7;
d=d*10+b;
}
c=fanzhuan(d);
return c;
}
int jiuzhuanhuan(int a)//9进制转换函数
{
int b,d,c;
while(a!=0)
{
b=a%9;
a=a/9;
d=d*10+b;
}
c=fanzhuan(d);
return c;
}
int main()
{
int a,b,c;
cin>>a;
b=qizhuanhuan(a);
c=jiuzhuanhuan(a);
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
return 0;
}
运行结果:
输入
123
输出
123
234
146234
其中,九机制转换结果成了正确的9进制数+上七进制了,单独运行7进制和9进制,结果都是对的,组合在一起就错误了,什么原因??
[此贴子已经被作者于2022-2-3 21:19编辑过]