왜 출력이 안되는지 모르겠습니다.
가을귀
질문 제목 :왜 출력이 안되는지 모르겠습니다. 일딴 저는 아직 배열도 안들어간 초보이니까 가볍게 봐주세요!
최대공약수를 구하는 프로그램입니다. 근데 1 ,1또는 5, 5와 같이 같은 수를 입력하면 정상적으로 뜨는데
그 외의 num과 num2의 수를 다르게 입력을 하면 출력이 되지 않습니다. 아무래도 for함수가 실행이 안되거나 그냥 통과해버리는 것 같아요.
제가 j를 for문에서 num또는 num2로 초기화 시켜줬는데 혹시 그것때문에 그런가요? for문에서는 선언과 초기화가 둘 다 가능한게 아닌가요..?질문 내용 :
#include stdio.h
void gcd (int num, int num2)
{
int j;
if (numnum2)
{
for (j=num; 0j; j--) //최대공약수가 큰 수 일수는 없으니 작은수부터 1씩 빼가며 확인
{
if (num2%j==0&&num%j==0) // 두 수가 다 j로 나눴을때의 나머지가 0이면 (공약수이면)
{
printf (최대공약수는 %d입니다., j);
break;
}
else
continue;
}
}
else if (numnum2)
{
for(j=num2; 0j; j--)
{
if (num2%j==0&&num%j==0)
{
printf(최대공약수는 %d입니다., j);
break;
}
else
continue;
}
}
else //두 수가 같을때
printf (최대공약수는 %d입니다., num);
}
int main (void)
{
int a,s;
printf(두개의 정수 입력 : );
scanf (%d %d, &a, &s);
gcd (a, s);
return 0;
}
-
한가람
감사합니다! 조건을 거꾸로 썼네요..ㅎㅎ 저것때문에 얼마나 붙잡았는지..ㅠㅠㅋㅋ
-
향율
for(초기값;조건;증가or감소)문에서 조건을 다시 한번 보시고 수정 해보세요.