亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如果m=n=4,為啥不會輸出4?

#include <stdio.h>
int main()
{
??? int m, n;
??? for(m=2; m<=50; m++)
??? {
??for(n=2; n<=m; n++)
??????? {
??????????? if(?? m%n==0?? )??????
??????????? {
??????????????? break;
??????????????? }
??}?
??????? if(m == n)
??????????? printf("%d? ", m);
?}
?return 0;???
}

我在這里把n<m改成了n<=m,那么m=4,n=4時,m%n=0且m==n,為啥不會輸出4?

正在回答

2 回答

因為在 m=4時 第四次開始內循環,所以還是從 n=2開始的,每次內循環開始時n都會被初始化為2,所以 4%2==0 符合??if(?? m%n==0?? ) break;

結論就是:第二層循環不會執行到n=4才跳出循環,會提前跳出循環,因為4能被2整除。

m=1時 n=2內循環結束

m=2時 n=2內循環執行一次

m=3時 n=2內循環執行兩次 2,3

m=4時 n=2內循環執行三次2,3,4 ,但是因為m%n==0 所以實際執行了1次

m=5時 n=2內循環執行了四次 2,3,4,5

7 回復 有任何疑惑可以回復我~
#1

慕斯卡1215 提問者

謝謝謝謝
2019-12-09 回復 有任何疑惑可以回復我~

因為當當m=4,n=2時,m%n==0,這時已經跳出循環,接著進行m==n的判斷,只有符合條件才會輸出。這時m=4,n=2,明顯不相等,所以不會輸出4

2 回復 有任何疑惑可以回復我~
#1

慕斯卡1215 提問者

謝謝同學
2019-12-09 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

如果m=n=4,為啥不會輸出4?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號