| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
//输入两个整数,输出它们的最大公约数和最小公倍数。 
 
#include "stdio.h" 
 
int yue,bei,a,b;          //定义全局变量,yue为最大公约数,bei为最小公倍数 
 
void huhuan(int a,int b) 
{ 
        int t; 
        t=a; 
        a=b;      //进行a和b两值的交换 
        b=t; 
        return; 
} 
 
void panduanyue(int a,int b)    //求a,b两值的最大公约数的被调函数 
{ 
        if(a<b) 
        huhuan(a,b);  //当a<b时,进行a和b两值的交换 
                  //分为下列几种情况 
        if(a%b==0)    //如a=15,b=5 
            yue=b;       
        if(a%(a%b)==0)  //如a=8,b=6 
                yue=(a%b); 
        if(a%(a%b)!=0)   //如a=7,b=5 
                yue=1; 
        return; 
} 
void panduanbei(int a,int b)    //求a,b两值的最小公倍数的被调函数 
{                       //情况同求最大公约数 
        if(a%b==0)  
            bei=a; 
        if(a%(a%b)==0) 
                bei=((a*b)/(a%b)); 
        if(a%(a%b)!=0) 
                bei=a*b; 
        return; 
} 
int main(void) 
{ 
        scanf("%d%d",&a,&b); 
        panduanyue(a,b); 
    panduanbei(a,b); 
        printf("yue=%d,bei=%d",yue,bei); 
        return 0; 
} 
 
问题一: 
当输入的值a<b时 
panduanbei(int a,int b)函数这里不需要进行a,b两值的交换。 
本人认为是由于 全 局 变 量 的关系,因为main主函数中先调用了 
panduanyue(a,b)函数,而panduanyue(a,b)函数调用了huhuan(int a,int b)函数, 
使a,b两值互换,此时a,b两值已经互换,所以panduanbei(int a,int b)函数不再需要 
huhuan(int a,int b)函数来进行a,b两值的互换 
请问大神 我说的对吗? 
问题二: 
请问大神  
为什么我的编程得不到正确的结果? 
请大神指教。。。 |   
 
 
 
 |