浙江大學(xué)翁愷教你C語言程序設(shè)計(jì)!C語言基礎(chǔ)入門!

個(gè)人理解(假設(shè)輸入的是2):
??? ?先把a(bǔ)的值賦值給i,然后第一個(gè)while條件符合所以開始運(yùn)行,將a的值賦值給j,然后到了第二個(gè)while,此時(shí)j=a,符合第二個(gè)while的條件,所以第二個(gè)while開始運(yùn)行,將a的值賦值給k,然后到了第三個(gè)while,此時(shí)k=a符合第三個(gè)while的條件,所以第三個(gè)while運(yùn)行,但是此時(shí)i=j=k=a,所以第三個(gè)while里面的三個(gè)嵌套的if語句都不會執(zhí)行,所以第三個(gè)while執(zhí)行完了,因?yàn)樗窃诘诙€(gè)while的里面,所以程序會繼續(xù)運(yùn)行第二個(gè)while里剩下的內(nèi)容,也就是“k++;”,執(zhí)行完“k++;”之后(此時(shí)k=3),第二次運(yùn)行第三個(gè)while,還是不符合三個(gè)if語句的條件,所以又跳到了“k++;”(執(zhí)行完這條語句后k=4),然后第三次運(yùn)行第三個(gè)while,然后又跳到了“k++”(執(zhí)行完這條語句后k=5),然后是第四次運(yùn)行第三個(gè)while,然后又跳到了“k++”(執(zhí)行完這條語句后k=6),然后是第五次運(yùn)行第三個(gè)while,因?yàn)閗=6而a+3=5,所以不再符合第三個(gè)while的條件,所以跳過了第三個(gè)while,而第三個(gè)while是在第二個(gè)while里面,所以程序會繼續(xù)執(zhí)行第二個(gè)while里面的語句,也就是“j++”(執(zhí)行完這條語句后j=3),然后第二次運(yùn)行第二個(gè)while,又重新把a(bǔ)的值賦值給k,(此時(shí)k=2),然后又開始了第三個(gè)while的循環(huán)(跟剛開始的時(shí)候一樣,k一直+1直到k=6的時(shí)候跳出第三個(gè)while),跳出第三個(gè)while后,繼續(xù)執(zhí)行第二個(gè)while的語句,也就是“j++”(執(zhí)行完這條語句后j=4),然后又把a(bǔ)的值賦值給k(即k=2),又開始新一輪的第三個(gè)while的循環(huán)(內(nèi)容跟之前第三個(gè)while的一樣,一直持續(xù)到j(luò)=6,j=6之后不再符合第二個(gè)while的條件,所以跳出第二個(gè)while,因?yàn)榈诙€(gè)while是在第一個(gè)while里面,所以繼續(xù)執(zhí)行第一個(gè)while剩下的內(nèi)容,也就是“i++”(執(zhí)行完這條語句后i=3),然后又重新開始運(yùn)行第一個(gè)while,(然后繼續(xù)進(jìn)行上面的文字描述的內(nèi)容,只不過i,j,k的值不同了)
??? ?簡單來說就是k每次從2到6循環(huán)一遍,j就會加1,j加到6之后i就會加1,(就相當(dāng)于從1數(shù)到999一樣,從1數(shù)到10之后個(gè)位從9重新變成0,十位從0變成了1,從11數(shù)到20之后個(gè)位又從9重新變成0,而十位從1變成了2,一直到90數(shù)到100,從90數(shù)到100之后個(gè)位重新變成0,十位也重新變成0,而百位從0變成了1。
??? ?當(dāng)然,大家需要自己打一遍代碼,然后按老師之前教的那樣一條語句一條語句地看,在左邊的”調(diào)試“窗口點(diǎn)擊右鍵,然后點(diǎn)擊”添加查看“,輸入變量(如i,j,k,cnt),就能實(shí)時(shí)查看變量的數(shù)值變化啦(注意,有藍(lán)色的那行是將要執(zhí)行的語句,還沒有執(zhí)行呢,此時(shí)點(diǎn)擊下一步就是執(zhí)行這條語句啦),執(zhí)行的語句數(shù)量不少喲,都是i,j,k數(shù)值的變化然后輸出符合題意的排列,建議理解完程序就結(jié)束運(yùn)行。
??? (PS:手打的可能會有錯(cuò)別字QAQ)