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