#include?"stdio.h"
#define?N?6
void?main()
{
char?c[N];
int?i=0;
for(;i<N;c[i]=getchar(),i++);
for(i=0;i<N;i++)putchar(c[i]);printf("\n");
????
}運行的過程的是怎樣的?
2 回答
已采納

慕粉3918764
TA貢獻1條經驗 獲得超2個贊
for(;?i<N;?c[i]=getchar(),i++) { ????; } 上面的語句這樣寫可能更清楚一點?。? 先得弄清楚for循環的執行順序: for循環內部以;為分割符,一共兩個分號,共三條語句段 執行順序為: 第一步:執行語句段1; 第二步:執行語句段2,如果語句段2為真,進入{},執行{}里面的語句,{}里的語句執行完執行語句段3; ?????????????????????如果語句2段為假,則退出循環。 第三步:執行語句段3,注意??!語句段3執行完畢之后,返回執行語句段2,也就是重復第二步?。? 在這里: ---第一次循環--- 執行第一段:是個空語句; 執行第二段:i的初值為0,N的值通過define定義為6,所以i<N為真,執行第三段。 執行第三段:c[i]=getchar(),意思是把你從鍵盤輸入的字符放到數組c的第i個位置,第一次i=0,所以是把字符放到c[0]的位置 ????????????然后?i++?的意思是?i?的值自加1。 ???????????? ---第二次循環--- 執行第二段:判斷i<N是否為真,因為第一次循環之后i的值變成了1,所以i<N?就是1<6,為真,執行第三段。 執行第三段:c[1]?=?getchar(),然后i++。 ...... 共循環6次!??! 所以這個循環的目的就是輸入6個字符,放到數組c里面 for(i=0;i<N;i++)putchar(c[i]);printf("\n"); 第一個for循環懂了,這個for循環就可以理解了,就是把數組c的元素再打印出來?。?!
- 2 回答
- 0 關注
- 1349 瀏覽
添加回答
舉報
0/150
提交
取消