在我写一道两个数的最大公约数中,需要分出两个数的大小,于是我想出用max和min函数
于是有一下代码:
int main()
{
int a,b;
scanf ("%d%d",a,b);
a= max (a,b);
b= min (a,b);
//......
}
写这段代码我的原意是:无论a与b谁大谁小,我都把这两个值中最大的给a,最下给b。
但运行发现这样赋值会存在bug,:如果开始输入a>b,则没问题,但是开始时输入中数a<b时,
就有问题:a= max (a,b);此时a 就等于b的值,变成了a与b的值都一样的 。b= min (a,b);就无意义了
所以正确应该这样写
int main()
{
int a,b;
int mi,ma;
scanf("%d%d",&a,&b);
mi = min(a,b);
ma = max(a,b);
//.......
}