第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

while循環(huán)中scanf的返回值

while循環(huán)中scanf的返回值

C
慕用4063026 2017-10-28 21:47:11
while(scanf("%d",&n[i])!=1)解釋一下這里!=1和==1的區(qū)別以下源碼:#include <stdio.h>int main(void) {?? ? int n[8];? ?? printf("Enter the integer:\n"); for(size_t i=0;i<8;i++) while(scanf("%d",&n[i])!=1){ ? ?printf("continu\n"); } for(size_t i=8;i>=1;i--) printf("%d",n[i-1]); getchar(); getchar(); return 0;}
查看完整描述

2 回答

已采納
?
onemoo

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊

“==1 的話不是讀取成功一個(gè)值繼續(xù)嗎”——那么你的意圖是“繼續(xù)”什么呢?

scanf 返回 1 確實(shí)表示成功讀取這個(gè)值。== 1 的判斷結(jié)果為 true,這會(huì)進(jìn)入執(zhí)行 while 循環(huán)體,可這個(gè)循環(huán)體只是打印出一句話,然后又繼續(xù)執(zhí)行 while 判斷部分的 scanf——你還是在這個(gè) while 循環(huán)中沒(méi)出去!? ?所以如果你輸入正確,那你根本沒(méi)法“繼續(xù)”,而是被困在了 while 循環(huán)中。

而且,你這樣判斷“讀取成功”的行為沒(méi)有意義?。? 如果成功讀取那就執(zhí)行后面的語(yǔ)句唄,為何要判斷呢??


如果是判斷“讀取失敗”的話還有點(diǎn)用。如果讀取失敗,就提示你再次輸入正確的值。這一般可以用循環(huán)來(lái)處理,比如 while (scanf讀取,判斷是否失敗) {讀取失敗,提示你再次輸入}。


但是代碼中 while(scanf("%d",&n[i])!=1) {printf("continu\n");} 這個(gè)方法并不能達(dá)到目的!

如果 scanf 匹配“輸入流”中的內(nèi)容失敗,那么輸入流中錯(cuò)誤的內(nèi)容還會(huì)留在輸入流中!?

那么一旦 scanf 匹配失敗,scanf 返回 0,則滿足 while 循環(huán)條件,while 的循環(huán)體打印出一句"continu"后開(kāi)始下一次循環(huán),即再次執(zhí)行 while 的判斷部分。由于輸入流中的錯(cuò)誤內(nèi)容還在,scanf 仍然會(huì)讀到這些錯(cuò)誤內(nèi)容,仍然會(huì)匹配失敗......這會(huì)導(dǎo)致 while 死循環(huán)!


查看完整回答
反對(duì) 回復(fù) 2017-10-29
  • 慕用4063026
    慕用4063026
    改成continue;呢?語(yǔ)句循環(huán)順序能說(shuō)一下嗎,麻煩了
  • onemoo
    onemoo
    continue語(yǔ)句就是直接執(zhí)行下一次循環(huán)。本來(lái)題目中代碼的這個(gè)循環(huán)體中就沒(méi)做什么事,就算什么都不寫也是執(zhí)行下一次循環(huán)。所以改成continue語(yǔ)句也是完全一樣。
?
慕用4063026

TA貢獻(xiàn)195條經(jīng)驗(yàn) 獲得超115個(gè)贊

==1 的話不是讀取成功一個(gè)值繼續(xù)嗎 ,可是==1的話代碼就讀不出倒序

查看完整回答
反對(duì) 回復(fù) 2017-10-28
  • 2 回答
  • 0 關(guān)注
  • 2348 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)