#include<iostream>
using namespace std;
int binTree(int n, int m){
if(n == m)
return m;
else if(n < m)
return binTree(n, m/2);
else if(n > m)
return binTree(n/2, m);
}
int main(){
int n,m;
cin >> n >> m;
cout << binTree(n, m);
}
그러나 컴파일러는 내 binTree 함수에서 "Non-void 함수는 모든 제어 경로에서 값을 반환하지 않습니다"라고 말합니다. 어떻게 볼 수 없습니까?
논리적으로 이해합니다. 컴파일러는 else
기본 상태로 종료하지 않는 것으로 판단 할 수 있으며 초기 조건을 제거하고 기본 상태로 해결되도록 허용하는 것이 좋습니다.
if (n < m)
return binTree(n, m/2);
else if (n > m)
return binTree(n/2, m);
return m
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다