0
我試圖將C代碼中的一些代碼轉換爲C++,請你們讓我知道我出了什麼問題,並給我一些指針?謝謝試圖將C代碼轉換爲C++ - 交互式二進制歐幾里德算法
由於某種原因,每當有人問這樣一個瑣碎的問題,他們會被告知「做你自己的家庭作業」等,所以我只是指出,這不是作業,它是值得的。再次感謝
#include <iostream>
using namespace std;
int main()
{
int gcd_bin(int u, int v)
{
int t, k;
u = u < 0 ? -u : u; /* abs(u) */
v = v < 0 ? -v : v;
if (u < v)
{
t = u;
u = v;
v = t;
}
if (v == 0)
return u;
k = 1;
while (u & 1 == 0 && v & 1 == 0)
{ /* u, v - even */
u >>= 1; v >>= 1;
k <<= 1;
}
t = (u & 1) ? -v : u;
while (t)
{
while (t & 1 == 0)
t >>= 1;
if (t > 0)
u = t;
else
v = -t;
t = u - v;
}
return u * k;
}
}
你對這段代碼有什麼問題?會發生什麼,以及你期望發生什麼?你真的問什麼問題? (「請修復我的代碼」不計算在內。) –
函數定義中'main'是唯一的東西嗎?另外,大多數C代碼都是有效的C++,並且「轉換」看起來並不多。 – crashmstr
C++幾乎是C的一個完美超集,所以沒有太多的端口。您發佈的代碼無效,但是(特別是嵌套函數)。 – Dani