trynet   7년 전

z=z=하면 2가 나와야 하는데 3이 나와요...

왜그러죠ㅜㅜㅜ

dz=z=해서도 2가 나와야하는데 3이 나와요

d가 있는 경우 없는 경우 나눠서 코드를 짠거같은데 왜 이렇게 나오죠...

제가 뭘 놓치고 있죠?ㅜㅜ

inbo207   7년 전

음 제가 실행해보진 않았는데

코딩 잡 지식으로

C언어나 Java나 언어나 컴파일러 따라서 if() 안에 a==0 && b==0 같이 여러개의 조건이 있을 때,

앞에서부터 a==0을 검사하는게 아니라 b==0부터 검사해서 b==0이 false라면

앞에 있는 a==0은 검사하지 않고 바로 패스해버리는 걸로 알고 있습니다.

후위연산식이었나 후위 우선연산이었나 그런 키워드로 기억하는데, 이런 문제가 생기지 않았을까 합니다.

코드로는 for()을 여러번 수행해서 이론적으로는 맞다고 보이는데, 다른 C 고수분이 봐주시면 좋겠네요.

추가적으로는 for()을 여러번 하는 것이 아니라 한번에 검사하는 방법도 있습니다. 생각해보세요~

luluctrl4   7년 전

z= 넣으시면 d 있는 경우 없는 경우 나눴을때 생기는 원인 찾을 수 있을거에요

그리고 다른거 하나는 문제가... 직접 for문을 조건문 확인하시면서 손으로 돌려보시는게 원인을 알 수 있을거 같아요

dz=dz= 가지고 손으로 직접 빠짐없이 체크하면서 돌리시면 원인 찾을 수 있을실듯

chogahui05   7년 전

if 조건문이 여러 개 있는 경우

if (조건 1 || 조건 2 || ... || 조건 n) 같은 경우 조건 1개만 참이여도 참이기 때문에

조건 1개가 참이면 나머지는 건너 뛰겠네요.


if(조건 1 && 조건 2 && ... && 조건 n)의 경우 조건 1개만 거짓이여도 거짓이여서

조건 1개만 거짓이여도 거짓이고요. 근데 사실 저건 어떻게 검사해도..


조건들은 어찌 어찌 잘 나누신 거 같은데 말이죠.

왠만하면 문자열 함수를 써 보시는 게 어떠실까 싶네요. strncmp라는 함수를 써서요.

원형은 source와 같습니다.

chogahui05   7년 전

아니면 조건을 단순화 시키는 방법도 있는데

언제 3개 길이의 크로아티아 문자열이 있을 가능성이 있을까요?

댓글을 작성하려면 로그인해야 합니다.