1. /*-------------------------------------------------------
    2. 【程序改错】
    3. ---------------------------------------------------------
    4. 题目:下列给定程序中函数fun的功能是:求两个非零正整数的最大
    5. 公约数,并作为函数值返回。
    6. 例如:若num1和num2分别为49和21,则输出的最大公约数为7;
    7. 若num1和num2分别为27和81,则输出的最大公约数为27。
    8. -------------------------------------------------------*/
    9. #include <stdio.h>
    10. int fun(int a,int b)
    11. {
    12. int r, t;
    13. if(a<b)
    14. {
    15. /***********FOUND***********/
    16. t=a; a=b; b=t;
    17. }
    18. r=a%b;
    19. while(r!=0)
    20. {
    21. a=b; b=r; r=a%b;
    22. }
    23. /***********FOUND***********/
    24. return(b);
    25. }
    26. main()
    27. {
    28. int num1, num2,a;
    29. printf("Input num1 num2: ");
    30. scanf("%d%d",&num1,&num2);
    31. printf("num1= %d num2= %d\n\n",num1,num2);
    32. a=fun(num1,num2);
    33. printf("The maximun common divisor is %d\n\n",a);
    34. }