hyundo1226   1년 전

무식하다싶을정도로 모든케이스를 조건문으로 다 코딩했는데 답은 제대로 나오는데 뭐가 틀린건지 모르겠습니다ㅠㅠ

doju   1년 전

C/C++의 문법을 잘 모르고 계신 것 같네요.

109번째 줄의 sa == sb == sc 는 (sa == sb) == sc 로 파싱 및 실행됩니다. 세 개의 값이 같은지 비교하려면 sa == sb && sb == sc 와 같이 식을 따로 써 주셔야 합니다.
코드 군데군데에서 보이는 cnt1, cnt2, cnt3 = 0; 도 세 변수를 전부 0으로 초기화시켜 주지 않습니다.

doju   1년 전

temp.cpp: In function ‘int main()’:
temp.cpp:83:20: warning: self-comparison always evaluates to false [-Wtautological-compare]
   if (sc == sb&&sa > sa) {
                 ~~~^~~~
temp.cpp:109:10: warning: suggest parentheses around comparison in operand of ‘==’ [-Wparentheses]
   if (sa == sb == sc) {
       ~~~^~~~~
temp.cpp:126:13: warning: left operand of comma operator has no effect [-Wunused-value]
       cnt1, cnt2, cnt3 = 0;
             ^~~~
temp.cpp:126:26: warning: right operand of comma operator has no effect [-Wunused-value]
       cnt1, cnt2, cnt3 = 0;
                          ^
temp.cpp:110:15: warning: ‘cnt2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     int cnt1, cnt2, cnt3 = 0;
               ^~~~
temp.cpp:124:27: warning: ‘cnt1’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     if (cnt3 > cnt1&&cnt1 == cnt2)  printf("%d %d\n", 3, sc);
                      ~~~~~^~~~~~~

어떤 환경에서 문제를 풀고 계신지는 잘 모르겠지만, 웬만한 컴파일러들은 저런 실수들을 전부 워닝 메시지로 알려 줍니다. 워닝 메시지를 무시하지 마세요.


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