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

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

怎樣看這個代碼?什么時候才執行n++?

#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)?? //n循環結束后,如果m=n的話就輸出m
??????????? printf("%d? ", m);
?}
?return 0;???
}

正在回答

4 回答

當n的值小于m時,執行n++。當m為n的倍數時跳出循環,執行下一語句,判斷m與n是否相等,相等即輸出m(此時m為質數),若不等進入下一循環,m++;

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

慕娘6268485 提問者

那這樣m,n的值不就一直一樣了?
2018-08-17 回復 有任何疑惑可以回復我~
#2

慕函數6546506 回復 慕娘6268485 提問者

這個代碼就是用來求50以內的質數,只有當m為質數時,n才會一直n++到與m相等從而m%n==0(此時達到質數條件,質數的因數只有1和它本身),否則則進入下一循環(m++);你可以給m分別取一個質數一個非質數(小一點的)帶入程序,就很容易弄懂了。
2018-08-18 回復 有任何疑惑可以回復我~
#3

慕娘6268485 提問者 回復 慕函數6546506

是不是每一次子循環n都從2開始?
2018-08-18 回復 有任何疑惑可以回復我~
#4

慕函數6546506 回復 慕娘6268485 提問者

嗯,是的從2一直到m。
2018-08-18 回復 有任何疑惑可以回復我~
#5

慕娘6268485 提問者

非常感謝!
2018-08-18 回復 有任何疑惑可以回復我~
#6

蠶豆C 回復 慕娘6268485 提問者

++了
2018-08-28 回復 有任何疑惑可以回復我~
#7

蠶豆C 回復 慕娘6268485 提問者

++了
2018-08-28 回復 有任何疑惑可以回復我~
查看4條回復

可以自己試下~~~加了引號輸出的是sum,不加就是顯示計算完的值16,IE6,!!

0 回復 有任何疑惑可以回復我~
  1. 第5行外循環m先自加,因為是m++所以輸出2(下一輪外循環就是把儲存的3放上去);

  2. 然后n=2,n不小于m,n不自加,m%n==0,退出內循環;

  3. m==n=2輸出2后循環結束,進入下一輪外循環;

  4. 第二輪外循環m=3,m++(輸出3儲存4);

  5. 內循環n=2;n<m;n++(先輸出2發現余1);

  6. 然后內循環的第二次循環n自加1變成3%3==0,退出內循;

  7. m==n=3,輸出3后循環結束,進入下一輪外循環;

  8. ......一直到m自加到50,n<m,n自加到50(輸出49),循環徹底結束。


0 回復 有任何疑惑可以回復我~
  1. 第5行外循環m先自加,因為是m++所以輸出2(下一輪外循環就是把儲存的3放上去);

  2. 然后n=2,n不小于m,n不自加,m%n==0,退出內循環;

  3. m==n=2輸出2后循環結束,進入下一輪外循環;

  4. 第二輪循外循環m=3,m++(輸出3儲存4);

  5. 內循環n=2;n<m;n++(先輸出2發現余1);

  6. 然后內循環的第二次循環n自加1變成3%3==0),退出內循;

  7. m==n=3,輸出3后循環結束,進入下一輪外循環;

  8. ......一直到m自加到50,n<m,n自加到50(輸出49),循環徹底結束。


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

怎樣看這個代碼?什么時候才執行n++?

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

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

幫助反饋 APP下載

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

公眾號

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