#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 关注
- 85 浏览
添加回答
举报
0/150
提交
取消