为了账号安全,请及时绑定邮箱和手机立即绑定

请问错在哪?好像无限循环了

请问错在哪?好像无限循环了

C
RISEBY 2023-03-19 21:17:35
#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) 


查看完整回答
反对 回复 2023-03-22
?
慕森王

TA贡献1777条经验 获得超3个赞

你的while循环里一直没有改变i,也就是说i将一直满足不等于0的循环条件,所以会陷入死循环。

查看完整回答
反对 回复 2023-03-22
  • 2 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信