- 高手看一下,我这个程序有什么毛病,怎么执行结果不对啊//这是一个
- //这是一个将10进制数转化为2进制数得
#include
void main(){
int a,b,i=0; //b保存余数
int s[9999];
cout<<"请输入一个2进制正整数";
cin>>a;
while(a>1){
b=a%2;
a/=2;
s[i]=b;
i++;
}
cout<<"此10进制数转化为2进制得"
while(i>0){
//这是一个将10进制数转化为2进制数得
#in
- 第一个whlie之后少了把最后一个商放到s里的语句。相应,第二个while的条件句要稍改一下。
不过本身第二个while也写的稍微有点问题,按原来的写法,跳出第一个while循环的时候,i已经++到比数组s里最后一个被赋值过的元素的下标大1的值了。在赋值之前,s里的元素又都没有做过初期化。。那第一个输出的s[i]一定是一个乱七八糟的数。
里加了一句改了一句,修改后:
//这是一个将10进制数转化为2进制数得程序
#include
void main(){
int a,b,i=0; //b保存余数
int s[9999];
cout<<"请输入一个10进制正整数";
cin>>a;
while(a>1){
b=a%2;
a/=2;
s[i]=b;
i++;
}
s[i]=a;
cout<<"此10进制数转化为2进制得";
while(i>=0){
cout<