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

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

將for(n=2;n<m;n++)改為for(n=2;n<=m;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 回答

你可以先把if(m==n)刪掉,看運行結果就容易理解一點了

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

運行沒有影響,但是對代碼運行的理解是不一樣的。for(表達式1;表達式2;表達式3),前面有流程圖說明三個表達式運行的順序。1.沒有=情況下,意思是在除1與本身以為,不存在整除數,不會提前跳出形成n!=m的情況,因此會在n=m-1執行最后一次循環后,進行n++運算,再進行n<m判斷,明確的是,在這里已經存在了n=m,所以跳出循環。2.你加了=號的情況,更利于理解成,在找到n=m前,沒有找到其他整除數,最后找到了n=m。這里需要提醒的是,如果在后面會用到n的值,需要清晰的理解n=?

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

運行上沒問題,沒什么影響

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

首先你的程序寫得很亂,我指的是格式,可讀性很差。其次改為<=只是在for的判斷條件中已經包含了=,所以在接下來的條件判斷中可考慮省略相等管關系的判斷

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

超優秀

是因為m=2,n=2嗎?求解答,要不睡不著啊
2020-03-30 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

將for(n=2;n<m;n++)改為for(n=2;n<=m;n++)是否更容易理解 運行上是否正確

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

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

幫助反饋 APP下載

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

公眾號

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