[問題] 巢狀迴圈
最近看到一個題目:(程式碼如下)
#include <stdio.h>
#include <stdlib.h>
#define ROWS 6
int main(void)
{
int i;
char ch;
for(i = 0; i < ROWS; i++)
{
for(ch = 'F'; 'F' <= (ch+i); ch--)
printf("%c", ch);
putchar('\n');
}
system("pause");
return 0;
}
=====================================
在第二層迴圈的時候,
(帶入第二層)
假設 i = 0 --------> ch ='F';'F'<=(ch+0) 印出:F
i = 1 --------> ch ='F';'F'<=(ch+1) 印出:FG
i = 2 --------> ch ='F';'F'<=(ch+2) 印出:FGH
(以下省略)
=====================================
可是跑程式的時候卻印出:
(這個是要跑的題目)
F
FE
FED
FEDC
FEDCB
FEDCBA
我是哪裡想錯了,最近一直對迴圈和遞增遞減搞不清楚,
很謝謝大家的教導! (在麻煩各位的講解了!!)
補充:問題是在於迴圈那裡我哪裡搞錯了??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.115.134.161
→
08/18 20:53, , 1F
08/18 20:53, 1F
推
08/18 20:55, , 2F
08/18 20:55, 2F
※ 編輯: shile775 來自: 58.115.134.161 (08/18 20:58)
推
08/18 20:57, , 3F
08/18 20:57, 3F
→
08/18 20:57, , 4F
08/18 20:57, 4F
→
08/18 20:58, , 5F
08/18 20:58, 5F
→
08/18 20:58, , 6F
08/18 20:58, 6F
→
08/18 20:59, , 7F
08/18 20:59, 7F
→
08/18 21:01, , 8F
08/18 21:01, 8F
不過f大,題目是要亮出這樣(如下)
(這個是要跑的題目)
F
FE
FED
FEDC
FEDCB
FEDCBA
不懂的地方是下面的迴圈是怎麼跑的?
for(i = 0; i < ROWS; i++)
{
for(ch = 'F'; 'F' <= (ch+i); ch--)
※ 編輯: shile775 來自: 58.115.134.161 (08/18 21:04)
→
08/18 21:04, , 9F
08/18 21:04, 9F
→
08/18 21:07, , 10F
08/18 21:07, 10F
→
08/18 21:11, , 11F
08/18 21:11, 11F
推
08/18 21:15, , 12F
08/18 21:15, 12F
→
08/18 21:15, , 13F
08/18 21:15, 13F
→
08/18 21:16, , 14F
08/18 21:16, 14F
→
08/18 21:16, , 15F
08/18 21:16, 15F
→
08/18 21:19, , 16F
08/18 21:19, 16F
→
08/18 21:20, , 17F
08/18 21:20, 17F
→
08/18 21:21, , 18F
08/18 21:21, 18F
→
08/18 21:23, , 19F
08/18 21:23, 19F
那我在問個白癡問題= =,ch--
是 for( 1: ch='F'; 2:'F'<=(ch+i);ch--)
1和2的哪一個??
※ 編輯: shile775 來自: 58.115.134.161 (08/18 21:29)
→
08/18 21:26, , 20F
08/18 21:26, 20F
→
08/18 21:27, , 21F
08/18 21:27, 21F
※ 編輯: shile775 來自: 58.115.134.161 (08/18 21:32)
※ 編輯: shile775 來自: 58.115.134.161 (08/18 21:33)
→
08/18 21:34, , 22F
08/18 21:34, 22F
討論串 (同標題文章)