王姬穿旗袍视频:c++ 10进制转换2进制

来源:百度文库 编辑:中科新闻网 时间:2024/04/26 23:45:21
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;
}

不过你可以使用cmath的一个函数:itoa()
使用方法如下:
int decimal;
char buffer[50];

cout << "input a base10 number: ";
cin>>decimal;
cout <<"output binary is: ";
cout<<itoa(decimal,buffer,2)<<endl;//直接使用math的函数
system("pause");
return 0;

1。头文件不需要带.h;
而且只需要一个头文件iostream

using namespace std; 不需要去掉;

2。变量i由于是局部变量,只在循环体中有效,所以无法进入下一个循环体,所以应该独立申请在前面

3。去掉输出代码中的endl,在代码段外独立添加一个endl就可以了

Hi mate upstair.
don't give him rubish, ok?