2014-02-25 3 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

직접 답변을 게시하고 수락 하시겠지만 편집 한 다음 확인하십시오. 여기에서 작성한 코드에 정정 사항을 입력하십시오 (간결하게). –

관련 문제