分类：电脑/网络-程序设计-C/C++
问题：高手看一下,我这个程序有什么毛病,怎么执行结果不对啊//这是一个 
//这是一个将10进制数转化为2进制数得#include <iostream.h>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进制数得#include <iostream.h>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){    cout<<s[i];    i--;}  cout<<endl;}
回答：第一个whlie之后少了把最后一个商放到s里的语句。相应，第二个while的条件句要稍改一下。不过本身第二个while也写的稍微有点问题，按原来的写法，跳出第一个while循环的时候，i已经++到比数组s里最后一个被赋值过的元素的下标大1的值了。在赋值之前，s里的元素又都没有做过初期化。。那第一个输出的s[i]一定是一个乱七八糟的数。里加了一句改了一句，修改后：//这是一个将10进制数转化为2进制数得程序#include <iostream.h>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<<s[i];i--;}cout<<endl;}