运行时不能输入
#include<iostream>
using namespace std;
int main()
{
int T,n,i,j,a[20];
cin>>T;
for(i=0;i<T;i++)
{
int count,y;
cin>>n;
while(n!=0)
{
int x;
x=n%2;
if(x==1)
count++;
n=n/2;
}
for(j=n+1;;j++)
{
while(j!=0)
{
int x;
x=j%2;
if(x==1)
y++;
j=j/2;
}
}
if(y==count)
{
a[i]=y;y=0;continue;
}
}
for(i=0;i<T;i++)
{
cout<<a[i]<<endl;
}
return 0;
}
[解决办法]
可以输入的啊!
不过你的代码有bug ,貌似死循环了!
在for循环里的for循环,在好好排查下,
[解决办法]
for(j=n+1;;j++)
{
while(j!=0)
{
int x;
x=j%2;
if(x==1)
y++;
j=j/2;
}
}
这里 for循环中间的表达式缺省了,就是个死循环,而且你没有任何跳出的条件
[解决办法]
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试是程序员必须掌握的技能之一。