#include <stdio.h>
int main(void)
{
char ch;
scanf("%c", &ch);
for (ch = '$'; ch != 'g'; scanf("%c", &ch))
printf("%c", ch);
return 0;
}
假設用戶輸入是Go west, young man!
這段代碼輸出為什么是$o west, youn而不是$Go west, youn呢
uj5u.com熱心網友回復:
我順著程式來給你講一下,首先輸入第一個字符‘G',此時到for回圈,ch='$',輸出;然后繼續scanf輸入,但是ch='$'此時已經不執行了,于是從o開始一直到g的前方都會輸出,而到g的時候回圈結束
uj5u.com熱心網友回復:
供參考:#include <stdio.h>
int main(void)
{
char ch;
scanf("%c", &ch);//這里讀入第一個字符到ch,到for回圈里時,ch = '$'被重新賦值了。
for ( ; ch != 'g'; scanf("%c", &ch))//for ( ch = '$'; ch != 'g'; scanf("%c", &ch))
//for回圈,首先執行ch = '$'賦值陳述句,再執行ch != 'g'判斷,條件滿足再執行回圈體內陳述句printf("%c", ch);,
//再執行scanf("%c", &ch),然后繼續執行ch != 'g'判斷,條件滿足再執行回圈體內陳述句printf("%c", ch);,如此重復。
printf("%c", ch);
return 0;
}
//輸出:
//Go west,young man!
//Go west,youn請按任意鍵繼續. . .
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/260200.html
標籤:新手樂園
