최대공약수 구하는 프로그램 작성하고 있는데, 밑에처럼 gcd(36,8)을 하면 4가 나와야 하는데 8이 나옴. 다른 수를 써봐도 gcd(x,y)를 넣었을 때 y값만 출력됨.로직은 맞는 것 같은데 대체 어디가 틀린거임???
너무 쉬워서 말할 가치가 없다.. 님이 찾아보는게 더 님 실력에 도움됨
팩트) 얘도 모름
ㄴ
아니 근데 if문에 저 식은 뭐야?? X=Y 대입을 왜 하누?
x랑 y가 같으면 x랑 y 그 자체가 두 수의 최대공약수이니까 바로 리턴하는거임
= 1개라고말하는거아님?
비교하려면 x==y 해야지 x=y 가 뭔지 모르나
그래 근데 왜 그걸 if문 비교하는식에 넣냐고 x==y 라고 해야지
if문에 x=y ㅋㅋㅋㅋㅋㅋ
= 1이 무슨 소리야?
아!!!!!!!!!! ㄳㄳㄳㄳㄱ 덕분에 풀었다!!!!!!!
x=y는 y를 x에 넣는 거고 x==y가 x랑 y가 같은 걸 말하는 거임
근데 왜 ==이라 안쓰고 =이라고 했는데 컴파일 에러 안뜨는거임? x=y는 y값을 x에 저장이니까 if(x=y)는 y의 값이 1이나 0이 아닌 이상 컴파일 에러 뜨는 게 정상 아니야?
근데 c는 에러 안뜨고 실행이 됨?
c는 무슨 절차지향 어쩌구 언어라 컴파일러도 분리돼있다고 책에서 본것 같긴한데 그거 때문에 에러 안뜨나
잘 모르겠는데 exe파일로 실행됐으면 컴파일 됐으니까 실행된거 아님?
연산은 이루어지고 X의 값이 조건 판단값이 되서 그럼
0 한번 넣어보고 로그로 if문 들어가는지 찍어봐
build log보라는 거임? 아무것도 안나와있던데 C언어 배운지 3일밖에 안되서 뭐가 뭔지 잘 모름;
연산을 이루어지고 x의 값이 조건 판단값이 됨 <--- 이게 무슨 소리임?
기존에 너가 실수했던 x=y 식은 대입 연산 식이라 y값이 x로 들어갈거임 그리고 x가 0이 아닐 경우 true로 인식하고 if문 안에 있는 코드들은 실행이 됨 ㅇㅇ
왜 x의 값이 0이 아닐 경우 true로 인식하는거야? y 값을 x에 넣는 거니까 y값이 1이나 0이여야 true, false가 되는 거 아님? 그 외의 값들은 true, false값을 만들어내지 못하니까 컴파일 에러가 떠야 하고.
그래서 내가 y를 0으로 넣고 함수호출 해보라는 거임 if문안에 printf 넣고 출력되는지 한번 확인해보라고
아니 0 아니면 다 true로 인식한다니깐
y에 0을 넣으면 1이 출력되는데 true라는 뜻이네.... 머릿속으로는 아직 이해가 안 가는데 일단 x가 0이 아니면 다 true로 인식한다는 걸로 외워둘게. 도와줘서 고마워
1은 어떻게 출력 되는거여?
C언어 배운지가 3일인거냐 아니면 코딩 접한지가 3일인거냐?
위에 사진에서 if(x = y)에서 gcb(7,0)을 넣었을 때 1이 출력됨. 함수 형태는 gcb(x,y)임.
코딩 3일임
와 3일만에 저렇게 한다고? 내가 병신인가?
0 외의 수를 true로 인식하는 건 맞는데 if문에서 그게 되나? while문에서 하는 거 아님?
if문에서 걸러지면 if문 안에 있는 return 때문에 while문까지 못가지 않음?