#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
long fromBin(long n)
{
long factor = 1;
long total = 0;
while (n != 0)
{
total += (n%10) * factor;
n /= 10;
factor *= 2;
}
return total;
}
int main() {
int a,b;
while (true) {
cin>>a;
if(a==2){
cin>>b;
cout<<fromBin(b)<<endl;
}
if(a==16){
cin >> hex >> b;
cout << b << endl;
}
if(a==8){
cin>>b;
cout<<oct<<b<<endl;
}
}
}
所以我的任務很簡單,但由於某種原因它不起作用。我必須輸入2個數字。第一個顯示我希望數字(16,2,8)轉換爲十進制的基數,第二個數字是數字。我的任務示例如下: 2 1111; 16 F; 8 1;答案應該是15,15 ,1。你也會認爲它必須是一個無休止的循環,因爲我的老師如何檢查他是否有他的例子,他希望我們無盡的循環。我得到正確的答案,但只有我如果我輸入一次數字,第二例如:當我輸入16 f時,我得到15,但是當我嘗試再次輸入時,沒有輸出,當我嘗試輸入2 1111時,我得到65沒有明顯的原因。另一個例子是當我輸入8 1,我得到1(這是正確的答案),然後我輸入2 1111,並得到17.Again wrong.Whatever我做我不能輸入2連續16 f,第二個不給我答案。所以你能幫我嗎?十六進制,二進制和八進制到十進制轉換器不能正常工作C++
是否有人有想法? – Pafo
上帝,我需要一些幫助:D – Pafo