두 정수의 최대공약수를 구하는 코드입니다.
뭐가 문제인지 잘 모르겠습니다.

왜 고쳐야 하는지하고 어떻게 고쳐야 하는지 알려주시면 감사하겠습니다.


 

 코드의 세세한 실수가 많네요  

 

○ Scanf() 함수의 입력 포멧 ("%d%d") 사이에 여백이 있어야 합니다. 이대로는 3, 36, 3 6 을 구분할 수 없습니다. 

○ 두 숫자가 같은 것을 확인하는 부분은 (a == b) 입니다. 여기가 (a = b) 로 되니, 이 부분만 지나면 a, b 값이 똑같아 지고, 이후 부분은 건너뛰게 됩니다. 

○ 출력 부분에 "%d" 가 없으니, c 를 출력할 수가 없습니다 .Printf() 함수 사용법을 더 명확하게 보세요

○ 최대공약수를 못찾는 경우에 대한 예외처리 추가해주세요



   코드 예제  
 

#include

int main()
{
    int a = -1, b = -1, c = -1;
    printf("두 정수를 입력하시오");
    scanf("%d %d", &a, &b);

    if (a > b)
    {
        c = a - 1;
        while (c > 1)
        {
            if (a%c == 0)
            {
                if (b%c == 0)
                {
                    printf("두 정수의 최대공약수 : %d\n", c);
                    break;
                }
            }

            c--;
        }
    }
    else if (a == b)
    {
        printf("두 정수의 최대공약수 : %d\n", a);
    }
    else
    {
        c = b - 1;
        while (c > 1)
        {
            if (b%c == 0)
            {
                if (a%c == 0)
                {
                    printf("두 정수의 최대공약수 :%d\n", c);
                    break;
                }
            }

            c--;
        }
    }

    if (c == 1)
    {
        printf("최대공약수가 없습니다\n");
    }

    getchar();	//Just for screen break
    return 0;
}


   실행 결과  
 





Posted by 지그프리드 지그프리드

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절


BLOG main image
일상, 프로그래밍, IT 그리고 직장생활, Dive, 여행 by 지그프리드

카테고리

Class List (402)
Studies (30)
Exercise & Quizz (10)
Term Project (0)
ECIM list (Help!) (10)
Issues & News (0)
Gossip about IT & Job (22)
Tools (2)
Think about the Justice (23)
Book Review (170)
조엘 온 소프트웨어(번역) (28)
Diary (87)
Vacations (9)
Clash of clans 클래시 오브.. (11)

글 보관함

달력

«   2019/10   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Total : 314,682
Today : 22 Yesterday : 15