两个程序的区别?求大神详细说说for循环的执行过程。

2024-11-15 05:57:19
推荐回答(1个)
回答1:

第一个是不对的,应该是
m%i==0&&n%i==0&&(s = i);
打印 s,否则 最终 i 为m, n中较小的那个数.

如果非要少一个变量,下面的版本是可以的:
int i = m > n ? n : m;
for( ; i > 1; i--)
m%i == 0 && n%i == 0 && (m = i) && (i = 1);
return m;
这未免也太自由了,难以接受