#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番目の数値は数値かを示します。タスクの私の例は 2 1111; 16 F; 8 1;回答は15,15 、1。また、私の先生のチェックは、彼が持っている事例を持っているので、私は無限のサイクルでなければなりません。私は正しい答えを得ることができます。何かが間違っていると私はそれが何かを得ることができません:例えば:私は16 fを入力すると、私は15を得るが、私は再び出力すると私は2 1111を入力しようとすると、それを入力しようとすると、私は8 1を入力し、私は1(正解である)を取得し、次に私は2 1111を入力し、17.Again wrong.Whatever私は行16に2を入力することはできません取得します。 2番目の答えは私に答えを与えません。あなたは私を助けることができますか?16進数、2進数、およびoctからdecへのコンバーターが正しく動作しないC++
誰かがアイデアを持っているのでしょうか? – Pafo
神私はいくつかの助けが必要です:D – Pafo