高手看一下,我这个程序有什么毛病,怎么执行结果不对啊//这是一个
//这是一个将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<