沃尔沃女车主停车撞死:C语言的高手请进!

来源:百度文库 编辑:高考问答 时间:2024/04/29 09:55:43
大家帮帮忙看一下这个C语言题目怎么做了,谢谢~~~~~
函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。
例如,若给num1和num2分别输入49和21,则输出的最大公约数为7:若给num1和num2分别输入27和81,则输出的最大公约数为27。
好的话我会提高赏金的哦!

#include "stdio.h"
int gcd(int u,int v)
{
return v?gcd(v,u%v):u;
}
void main()
{
int a,b,resu;
printf("please input two num with ',' space out: ");
scanf("%d,%d",&a,&b);//输入时用 “,” 分隔
resu=gcd(a,b);
printf("\nthe gcd of %d and %d is :%d",a,b,resu);
}

/*
辗转相除法求最大公约数
*/
int fun(int num1,int num2)
{
int t;
while(t=num1%num2)
{
num1=num2;
num2=t;
}
return num2;
}

1楼的程序简明易懂,2楼的程序更加简洁,但可读性稍逊.
补充一点:在算法前可以先比较u,v的大小,如果u<v,就交换之.这样程序会更快.