c++ 10进制转换2进制

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:45:14
Can somebody fix my problem...my computer cant type Chinese..sorry...

#include <iostream.h>
#include <stdlib.h>
#include <cmath>
using namespace std;

int main (){
double i;
int num=0;
cout << "input a base10 number: ";
cin>>num;
cout <<"output binary is: ";
int elem[1000];
for(int i=0;i<1000;i++)
{
elem[i]=(num%2);
num=int(num/2);
if(num<1)
{
break;
}
else continue;
}
for(int j=i;j>=0;j--)
{
cout<<elem[j]<<endl
;
}
system ("pause");
return 0;

}

1、既然写了using namespace std;那么include就不用写.h了,
直接写
#include <iostream>
using namespace std;

2、stdlib和math都用不到,不用include了。

3、i只是用作循环变量,int i就行了,开头的double i导致重复定义,删除掉.

4、最后输出时,最好把endl放在循环外面,否则输出一个0、1就换一行,太难看了。

参考代码如下:
#include <iostream>
using namespace std;

int main (){
int num=0;
int i;
cout << "input a base10 number: ";
cin>>num;
cout <<"output binary is: ";
int elem[1000];
for(i=0;i<1000;i++)
{
elem[i]=(num%2);
num=int(num/2);
if(num<1)
{
break;
}
else continue;
}
for(int j=i; j>=0; j--)
{
cout<<elem[j]<<" ";
}
cout<<endl;
system ("pause");
return 0; <