现在的位置: 首页 > 综合 > 正文

第二周实验报告一

2014年02月14日 ⁄ 综合 ⁄ 共 530字 ⁄ 字号 评论关闭

 递归法求十进制向二进制的转换

方法一

#include<iostream>
using namespace std;
int main()
{

 int a[50];
    int k=0,n;
 cout<<"请输入一个十进制数:"<<endl;
 cin>>n;
 cout<<"相应的二进制数是:"<<endl;
 while(n>0)
 {
 
  a[k]=n%2;
     n=n/2;
  ++k;
 }
   
 for(;k>=0;k--)
 {
         cout<<a[k];
 }

return 0;
}

 

 

 

 

 

 

方法二

#include<iostream>
using namespace std;
void d2b(int n)
{
 if(n==0)
  cout<<0;
 else if(n==1)
  cout<<1;
     else
  {
   d2b(n/2);
   cout<<(n%2);
  }
}
int main()
{
 int a;

cout<<"请输入一个十进制数:"<<endl;

cin>>a;//输入十进制数

cout<<"相应的二进制数是:"<<endl;
 d2b(a);//转换成二进制数输出
 return 0;
}

 

 

 

 

问题:为什么第一种方法输出二进制数时前面会有乱数,然后才输出正确的二进制数?

抱歉!评论已关闭.