숫자 "n"과 그 기수 "D"가 주어지면 뒤 따르는 함수를 사용하여 기수 D에서 역수를 계산 한 다음 Decimal로 변환하고 반환합니다.예외가 C++ 함수에서 발생했습니다.
문제는 메서드 1이 성공적으로 작동 할 수 있지만 메서드 2는 항상 예외가 발생한다는 것입니다. 방법 2의 문제점이 무엇인지 말해 줄 사람이 있습니까? 매우 감사합니다.
int getrevn(int n, int D)
{
//-------method 1-------------------------//
int revn = 0;
while (n)
{
revn = revn * D + n % D;
n /= D;
}
return revn;
//------method 2-------------------------//
string s;
while (n)
{
s = char(n % D + '0') + s;
n /= D;
}
int rev = 0;
for (unsigned int i = s.size() - 1; i >= 0; i--)
rev = rev * D + s[i] - '0';
return rev;
}
예외는 무엇입니까? 그것은 중요합니다. – Carcigenicate
방법 2에서 's'는 방금 선언했지만 초기화되지 않으므로'+ s'를 가질 수 없습니다. –
@ 엘리사 도프 :'string s;은 어떻게 초기화되지 않습니까? – IInspectable