4 回答

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
問(wèn)題就出在?scanf?的格式化字符串中最后的空格,也就是?scanf("%d,%d ", ...? ?這里第二個(gè) %d?后面的空格。
格式化字符串中空格會(huì)匹配輸入流中的任何“空白字符”。默認(rèn)的空白字符包括回車、空格、tab等。如果對(duì)此不太清楚請(qǐng)參考我在這個(gè)帖子中的回答:http://idcbgp.cn/wenda/detail/400705? ?(尤其是關(guān)于空白字符和 extra?bonus 的部分)
對(duì)于這里的代碼,你輸入每組數(shù)據(jù)后必然會(huì)再敲一個(gè)回車(或空格)來(lái)結(jié)束輸入,然而正是由于 scanf?的格式化字符串中最后空格的存在,這個(gè)空格會(huì)將你輸入的回車“消耗”掉。而且不管你在這時(shí)敲多少個(gè)回車空格,都會(huì)被消耗掉,所以導(dǎo)致你的輸入始終沒(méi)有結(jié)束。程序在這時(shí)不顯示輸出結(jié)果,好似卡在這里了,實(shí)際上是程序一直在等你結(jié)束輸入。
之所以你說(shuō)輸入第六祖才能運(yùn)行,其實(shí)是因?yàn)槟爿斎肓丝瞻鬃址酝獾臇|西,這造成了匹配失敗,scanf?執(zhí)行結(jié)束,所以程序才繼續(xù)執(zhí)行下去了。那么這里其實(shí)你不用完整輸入第六組數(shù)據(jù)的,只要輸入任何一個(gè)非空白字符,再按回車都可以。
再深入一點(diǎn),其實(shí)前五組數(shù)據(jù)輸入時(shí)也面臨這個(gè)問(wèn)題,每組數(shù)據(jù)都是由于有后面的輸入才結(jié)束本組 scanf?的執(zhí)行的。

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
數(shù)組下標(biāo)是從0開始的, number[0]? ?到number[5]就是6個(gè)數(shù)
輸出時(shí)你的for循環(huán)是i<5? ?就只循環(huán)五次? ?
- 4 回答
- 0 關(guān)注
- 1021 瀏覽
添加回答
舉報(bào)