我为我的班级编写了这个程序。我发现它可以使用 GNU g++ 编译器进行编译和运行。我的教授从他的网站自动评分我们的程序,该网站使用 Microsoft Visual Studio 编译器并引发错误。我也在 BSD clang 编译器中尝试过这个程序,但我得到了一个完全不同的错误。
#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdlib>
using namespace std;
double dec2Bin(int value, char binaryString[])
{
int x = 1;
string hold = "";
while(x <= value){
x *= 2;
}
x /= 2;
while(x >= 1){
//cout << x << " ";
if(value > x){
hold += "1";
value -= x;
}
else if(value < x){
hold += "0";
}
else if(value == x){
hold += "1";
value = 0;
//return hold;
}
x /= 2;
//cout << hold << endl;
}
return atoi(hold);
}
int main()
{
char binstr[100];
int num = 0;
cout << "Enter a decimal string: ";
cin >> num;
cout << "its "<<dec2Bin(num, binstr) << endl;
}
是什么让所有这些编译器如此不同?我能做些什么来确保我的代码可以在任何编译器中工作吗?