Re: [問題]C++ 九九乘法表 如何用if來寫呢??
/*
恕刪全文...
我認為 do-while, while-do, for迴圈某種程度上是由
if 判斷式加上 goto 組合而成(前板有推文中也有提到)
之間可以互用,這邊獻個醜,若有不對觀念請鞭小力點
謝謝....
以下的source cide中將USING_LOOP的定義改成1~4,
再用 gcc -E 就可以看出不同的寫法,但一樣的結果 :)
<P.S> 抱歉,我不會用C++,改成C ....
*/
#define USING_LOOP 4
#define LOOP_FOR 1
#define LOOP_DO_WHILE 2
#define LOOP_WHILE_DO 3
#define LOOP_IF_GOTO 4
#if (USING_LOOP == LOOP_FOR)
#define LOOP_BEGIN(F, Begin, Stop, Step) \
for(Begin; Stop; Step) {
#define LOOP_END(F, Begin, Stop, Step) \
}
#elif (USING_LOOP == LOOP_DO_WHILE)
#define LOOP_BEGIN(F, Begin, stop, step) \
Begin; do {
#define LOOP_END(F, Begin, Stop, Step) \
Step; } while(Stop);
#elif (USING_LOOP == LOOP_WHILE_DO)
#define LOOP_BEGIN(F, Begin, Stop, Step) \
Begin; while(Stop) {
#define LOOP_END(F, Begin, Stop, Step) \
Step; }
#elif (USING_LOOP == LOOP_IF_GOTO)
#define LOOP_BEGIN(F, Begin, Stop, Step) \
Begin; loop_begin_##F:
#define LOOP_END(F, Begin, Stop, Step) \
Step; if (Stop) {goto loop_begin_##F;}
#endif
int main(int argc, char *argv[])
{
int i , j;
int sum;
LOOP_BEGIN(a, i = 1, i <= 9, i++)
{
LOOP_BEGIN(b, j = 1, j <= i, j++)
{
sum=i*j;
printf("%d*%d=%d ", j, i, sum);
}
LOOP_END(b, j = 1, j <= i, j++)
printf("\n");
}
LOOP_END(a, i = 1, i <= 9, i++)
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.136.210.73
→
02/01 19:15, , 1F
02/01 19:15, 1F
→
02/01 19:54, , 2F
02/01 19:54, 2F
→
02/01 20:36, , 3F
02/01 20:36, 3F
推
02/01 20:47, , 4F
02/01 20:47, 4F
推
02/01 21:50, , 5F
02/01 21:50, 5F
推
02/01 22:54, , 6F
02/01 22:54, 6F
→
02/02 08:47, , 7F
02/02 08:47, 7F
推
02/02 10:13, , 8F
02/02 10:13, 8F
推
02/02 10:17, , 9F
02/02 10:17, 9F
→
02/02 10:19, , 10F
02/02 10:19, 10F
→
02/02 10:49, , 11F
02/02 10:49, 11F
→
02/02 10:50, , 12F
02/02 10:50, 12F
→
02/02 10:50, , 13F
02/02 10:50, 13F
→
02/02 10:51, , 14F
02/02 10:51, 14F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 13 篇):