강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

yeon _leaf님의 프로필 이미지
yeon _leaf

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-F

+=나 -=연산자를 사용하는 것과 덧셈/뺄셈 후 할당하는 것의 차이가 있을까요?

해결된 질문

작성

·

241

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

http://boj.kr/e083acd670f1478bad5c88f07da76de7

복합대입연산자를 쓰면 중간에 자꾸 이상한 에러가 납니다.

백준의 첫 번째 예제의 경우에도 Dev c++에서 테스트해 보면

Onrxwbba Bayvar W굌tr

이런 식으로 문자가 깨지는 경우가 발생합니다. 왜 이렇게 되는 건가요?

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요. ㅎㅎ

아스키코드는 숫자 몇까지 있을까요? 127까지 있는데요.

여기서 yeon님의 코드 중에서 127을 넘어가는 경우의 수가 있기 때문에 그러한 에러가 발생이 되는 것입니다. (u로 테스팅해보시면 됩니다.)

 

감사합니다.

 

yeon _leaf님의 프로필 이미지
yeon _leaf
질문자

답변 감사합니다.

s[i] += 13; // (1)
if (s[i] > 122) {
	s[i] -= 26;
}

위 부분의 (1)에서 이미 127이 넘어가는 값이 생겨버리기 때문에 오류가 발생해 아래의 조건문이 작동하지 않는 것이라고 이해했는데 맞을까요?

큰돌님의 프로필 이미지
큰돌
지식공유자

(정정) 네. -136 등 이상한값이 들어가게 됩니다.

yeon _leaf님의 프로필 이미지
yeon _leaf
질문자

이해했습니다. 감사합니다!!

yeon _leaf님의 프로필 이미지
yeon _leaf

작성한 질문수

질문하기