【发布时间】:2013-05-14 00:11:15
【问题描述】:
int inputNumber=0;
int divisionStore=0,modStore=0;
vector<int> mainVector;
cout << "\nEnter a Number to Convert to Binary.\n" << endl;
cin >> inputNumber;
do
{
modStore=inputNumber%2;
inputNumber=inputNumber/2;
mainVector.push_back(modStore);
}while(inputNumber!=1);
for (int i=0;i<mainVector.size();i++)
{
cout<<endl<<mainVector[i]<<endl;
}
似乎有一个逻辑错误,但我找不到它有什么问题?该程序没有打印正确的转换,因为循环似乎在它可以推送最后一个数字之前结束。
【问题讨论】:
-
你期待什么结果,你得到了什么结果?
-
那么,您是否尝试过使用一些“跟踪” - 打印正在划分的数字... [我可以确切地看到问题所在,但您可以从实际工作中了解更多信息比我告诉你]
-
@CaptainObvlious 我希望在输入为 5 时得到 101,但似乎走错了路,只显示了 10
-
@MatsPetersson 我试图用钢笔和铅笔检查输入,但找不到任何东西。但我猜有人刚刚回答了问题所在。
-
使用笔和纸是一个好方法,但您当然必须考虑到您可能不会做与计算机完全相同的事情。 Paul R 有正确的答案 - 当 inputNumber 为 0 时您需要停止。