C++编程:从键盘输入两个十进制数,将其转换为二进制、八进制和十六进制数,并同时输出。

如题所述

#include <iostream>
using namespace std;

//十进制数转换成二进制数字
void fun_1(int n)
{
if(n<2)
cout<<n;
if(n>=2)
{
fun_1(n/2);
cout<<n%2;
}
}

//十进制数字转换成八进制数字
void fun_2(int n)
{
if(n<8)
cout<<n;
if(n>=8)
{
fun_2(n/8);
cout<<n%8;
}
}

//十进制数转换成十六进制数字
void fun_3(int n)
{
switch(n)
{
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<<n;
}
}

void fun_4(int n)
{
if(n<16)
fun_3(n);
if(n>=16)
{
fun_4(n/16);
fun_3(n%16);
}
}

//主函数
void main()
{
int n;
cout<<"请输入n的值: "<<endl;
cin>>n;
cout<<"十进制数字转换成二进制,八进制,十六进制数字结果如下:"<<endl;
fun_1(n);
cout<<endl; //输出结果换行
fun_2(n);
cout<<endl;
fun_4(n);
cout<<endl;
}追问

我后面主函数改成输入两个数怎么不行的?

追答

函数参数只有一个
如果你要输入两个数 就要连续调用函数两次
void main()
{
int n,m;
cout>n>>m;
cout<<n<<"十进制数字转换成二进制,八进制,十六进制数字结果如下:"<<endl;
fun_1(n);
cout<<endl; //输出结果换行
fun_2(n);
cout<<endl;
fun_4(n);
cout<<endl;
cout<<m<<"十进制数字转换成二进制,八进制,十六进制数字结果如下:"<<endl;
fun_1(m);
cout<<endl; //输出结果换行
fun_2(m);
cout<<endl;
fun_4(m);
cout<<endl;

}

温馨提示:答案为网友推荐,仅供参考
相似回答