洗掉 if 陳述句后,代碼運行沒有問題。這是什么原因?此代碼給出用戶應輸入的兩個數字(m 和 n)的最大公約數 (GCD)。
#include <stdio.h>
int main() {
int m, n, r;
scanf("%d,%d", &m, &n);
if (m < n) {
r = m;
m = n;
n = r;
}
do {
r = m % n;
m = n;
n = r;
} while (r != 0);
printf("%d\n", m);
return 0;
}
uj5u.com熱心網友回復:
是否m大于并不重要n。如果minitial 小于nthen 在 do-while 回圈的第一次迭代中
do {
r = m % n;
m = n;
n = r;
} while (r != 0);
m將大于n由于陳述句
m = n;
例如讓我們假設m等于2和n等于10。所以r等于m % n將等于2,實際上這些陳述句
m = n;
n = r;
交換m并n在回圈的第一次迭代中。
uj5u.com熱心網友回復:
雖然 if() 陳述句沒有任何問題......唯一可能出錯的是濫用 scanf(),除了你的代碼作業得非常好
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/460676.html
下一篇:IF陳述句是否匹配資料范圍
