#include "stdio.h"main(){long int a[99999],b,i,c=0,e=1,j=0;printf("輸入十進制數:");scanf("%ld",&b);for(i=0;b!=0;i++){a[i]=b%2;b=b/2;c++;}for(i=c;i!=0;i--){while(i!=0){a[i]=a[i]*e;e*10;}}for(i=0;i<c;i++){j+=a[i];}printf("結果是%ld\n",j);}
2 回答

侃侃爾雅
TA貢獻1801條經驗 獲得超16個贊
你這段程序問題太多了。好好學習基礎知識,理清編程思路再做開發。不要想到哪里就寫到那里。
1. 你沒有讓用戶輸入要轉換成什么進制;
2. 變量 e 是啥作用?
3. a[i]*e 永遠等于 a[i] 。
4. e*10 是啥意思?
5. 除非是轉換為十進制,否則 e 不應該乘以10啊。
6. 死循環在這里 while(i!=0) 里面沒有對 i 進行減操作。
7. 這是啥寫法啊?
for(i=c;i!=0;i--)
{
while(i!=0)
- 2 回答
- 0 關注
- 111 瀏覽
添加回答
舉報
0/150
提交
取消