2014-02-25 18 views
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; 
    } 
} 
+1

你對這段代碼有什麼問題?會發生什麼,以及你期望發生什麼?你真的問什麼問題? (「請修復我的代碼」不計算在內。) –

+0

函數定義中'main'是唯一的東西嗎?另外,大多數C代碼都是有效的C++,並且「轉換」看起來並不多。 – crashmstr

+4

C++幾乎是C的一個完美超集,所以沒有太多的端口。您發佈的代碼無效,但是(特別是嵌套函數)。 – Dani

回答

0

我還沒有答案接受,但問題一直蜜蜂被人們再次決心指出我是多麼愚蠢的意見是,謝謝。

編輯:我發佈這個,所以我可以接受它作爲答案,並關閉了問題,它不讓我接受另外兩天。

+0

可以發佈並接受你自己的答案,但是請編輯並製作一個。把你的修改放在你在這裏編寫的代碼中(簡潔)。 –