注册 登录
编程论坛 C++教室

新人有个弱弱的问题

ml_yzh 发布于 2010-02-23 21:32, 551 次点击
#include<iostream.h>
void main()
{
    int a,b,num1,num2,temp;
    cout<<"Please input 2 number: "<<endl;
    cin>>num1>>num2;
    if(num1>num2)
    {
        temp=num1;
        num1=num2;
        num2=temp;
    }
    a=num1;
    b=num2;
    while(b!=0)
    {
        temp=a%b;
        a=b;
        b=temp;
    }
    cout<<"×&icirc;&acute;ó&sup1;&laquo;&Ocirc;&frac14;&Ecirc;&yacute;"<<a<<endl;
    cout<<"×&icirc;&ETH;&iexcl;&sup1;&laquo;±&para;&Ecirc;&yacute;"<<num1*num2/a<<endl;
}

==============================================================================================================================   

    {
        temp=a%b;
        a=b;
        b=temp;
    }
为什么一定要按照这个顺序 b的值赋予了a之后 后面再把temp的值赋予了 b 为什么 不能一开始先把temp值赋予b 再把b的值赋予a
5 回复
#2
shiyuehai2010-02-24 10:59
一开始把temp的值赋给b,b的值变成temp的值,然后再把b赋予a就导致a和b相等都为temp。。。。
#3
dong8207292010-02-24 16:54
同楼上:
你需要的是让a得到b的值,如果你先把temp给b,b保存的就是temp的值,你在把b给a,这是a也是temp的值。
#4
ml_yzh2010-02-24 17:39
那么为什么b=num2;
    while(b!=0)
    {
        temp=a%b;
        a=b;
        b=temp;
    }
#5
shiyuehai2010-02-24 20:31
回复 4楼 ml_yzh
这是一个循环,先把你输入的num2的值赋给b,若你输入的num2的值不为0就运行循环体里面的运算;举个例子,我输入num1=5,nun2=2,即b=num2就把2赋给了b,此时a=5,b=2!=0;即循环条件成立,运行temp=a%b=5%2=1,再把2赋给a(a=b),把temp的值1赋给b(b=temp)再循环,第二次循环运行temp=2%1=0,再按照上面步骤赋值此时a=1,b=0不符合循环条件退出循环,不知道这样解释你清楚不
#6
ml_yzh2010-02-25 21:01
谢谢终于清楚了
1