用C++编写一个十进制表示的正整数,将其转化为二进制表示并输出结果。
来源:百度知道 编辑:UC知道 时间:2024/05/17 06:16:05
我自己写啦一个,编译无错。但得不到正确结果。
#include<iostream.h>
void main()
{
int a,i;
int c[16];
cout<<"输入一个十进制的正整数:"<<endl;
cin>>a;
if(a<0)
cout<<"输入错误,请输入正整数!";
if(a==0) cout<<"转为二进制后为:0 ";
while(a>=1)
{
i=0;
c[i]=a%2;
i++;
a=a/2;
cout<<"转为二进制后:"<<c[i]<<endl;
}
}
主要是数组上的运用问题。我开始是用一个整型数来表示计算出来的二进制,但与结果是反的,我不能实现将其反向输出。
后来有人建议用数组装二进制数,用循环输出。就修改成上述的。弄啦两天也没结果。
希望有人赐教。最好是在我的基础上改。
注:本人初学,望简单易懂。
#include<iostream.h>
void main()
{
int a,i;
int c[16];
cout<<"输入一个十进制的正整数:"<<endl;
cin>>a;
if(a<0)
cout<<"输入错误,请输入正整数!";
if(a==0) cout<<"转为二进制后为:0 ";
while(a>=1)
{
i=0;
c[i]=a%2;
i++;
a=a/2;
cout<<"转为二进制后:"<<c[i]<<endl;
}
}
主要是数组上的运用问题。我开始是用一个整型数来表示计算出来的二进制,但与结果是反的,我不能实现将其反向输出。
后来有人建议用数组装二进制数,用循环输出。就修改成上述的。弄啦两天也没结果。
希望有人赐教。最好是在我的基础上改。
注:本人初学,望简单易懂。
#include<iostream.h>
void main()
{
int a,i;
int c[16];
//这里既然是叫人家重新输入,那就要用循环啊!!
cout<<"输入一个十进制的正整数:"<<endl;
cin>>a;
while( a < 0 )
{
cout<<"输入错误,请输入正整数!";
cout<<"输入一个十进制的正整数:"<<endl;
cin>>a;
}
if( a == 0 )
cout<<"转为二进制后为:0 ";
i = 0;
while( a > 0 )
{
// i=0; 这里是每一次循环都会执行到的
c[i] = a % 2;
i++;
a = a / 2;
}
i = i - 1;
cout<<"转为二进制后:";
while( i > -1 )
{
cout<<c[i--];
}
cout<<endl;
}
#include "iostream"
using namespace std;
int main()
{
int a,i;
int cnt=0;
int c[16];
cout<<"输入一个十进制的正整数:"<<endl;
cin>>a;
if(a<0)