將for(n=2;n<m;n++)改為for(n=2;n<=m;n++)是否更容易理解 運(yù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? )?????? //什么條件下跳出當(dāng)前循環(huán)
????????????? break;???????????????? //這里應(yīng)該退出當(dāng)前循環(huán)了
??}?
??????? if(m == n)?? //n循環(huán)結(jié)束后,如果m=n的話就輸出m
??????????? printf("%d? ", m);
?}
?return 0;???
}
2019-09-29
你可以先把if(m==n)刪掉,看運(yùn)行結(jié)果就容易理解一點(diǎn)了
2019-09-29
運(yùn)行沒有影響,但是對(duì)代碼運(yùn)行的理解是不一樣的。for(表達(dá)式1;表達(dá)式2;表達(dá)式3),前面有流程圖說明三個(gè)表達(dá)式運(yùn)行的順序。1.沒有=情況下,意思是在除1與本身以為,不存在整除數(shù),不會(huì)提前跳出形成n!=m的情況,因此會(huì)在n=m-1執(zhí)行最后一次循環(huán)后,進(jìn)行n++運(yùn)算,再進(jìn)行n<m判斷,明確的是,在這里已經(jīng)存在了n=m,所以跳出循環(huán)。2.你加了=號(hào)的情況,更利于理解成,在找到n=m前,沒有找到其他整除數(shù),最后找到了n=m。這里需要提醒的是,如果在后面會(huì)用到n的值,需要清晰的理解n=?
2019-09-17
運(yùn)行上沒問題,沒什么影響
2019-09-12
首先你的程序?qū)懙煤軄y,我指的是格式,可讀性很差。其次改為<=只是在for的判斷條件中已經(jīng)包含了=,所以在接下來的條件判斷中可考慮省略相等管關(guān)系的判斷