单项选择题
设计一个函数MaxCommonFactor(),利用欧几里德算法(也称辗转相除法)计算两个正整数的最大公约数。
代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。
#include int MaxCommonFactor(int a, int b);int main(){ int a, b, x; printf("Input a,b:"); scanf("%d,%d", &a, &b); x =_______________ ; if (x != -1) { printf("MaxCommonFactor = %d", x); } else { printf("Input error!"); } return 0;}//函数功能: 计算两个正整数的最大公约数,-1表示没有最大公约数int MaxCommonFactor(int a, int b){ int r; if (a<=0 || b<=0) return -1; // 保证输入的参数为正整数 do{ ____________; a = b; _____________; }while (__________); return a; }
A.第8行: MaxCommonFactor(a, b, x)
第29行: r = a % b
第31行: a = r
第32行: r == 0
B.第8行: MaxCommonFactor(a, x)
第29行: r = b % a
第31行: b = r
第32行: r = 0
C.第8行: MaxCommonFactor(x, b)
第29行: r = a / b
第31行: a = r
第32行: r != 0
D.第8行: MaxCommonFactor(a, b)
第29行: r = a % b
第31行: b = r
第32行: r != 0