问答题 下列给定程序中函数fun()的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
注意:不得增行或删行,也不得更改程序的结构。
试题程序

#include <stdio.h>
int fun(int a, int b)
{ /* * * * *found* * * * * /
int r; t;
if(a < b)
{ /* * * * *found* * * * * /
t=a; a=b; b=t
}
r=a % b;
/ * * * * *found* * * * * /
while(r !=0);
{ a=b; b=r; r=a% b;
}
return b;
}
main()
{
int a, b
printf("请输入两个非0正数整数:/n");
scanf("% d% d", &a, &b)
printf("% d和%d的最大公约数为:% d/n", a, b, fun(a, b);
}
【正确答案】错误1:r后面应为“,”号;错误2:行尾应加上“;”号;错误3:行尾不应加“;”号。
【答案解析】