[問題] 關於用for迴圈寫九九乘法的一個小問題

看板C_and_CPP (C/C++)作者 (Isaiah Thomas)時間13年前 (2012/10/04 14:18), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
程式如下 --------------------------------- #include <stdio.h> /*1*/ #include <stdlib.h> /*2*/ int main(int argc, char *argv[]) /*3*/ { /*4*/ int a,b; /*5*/ for(a=1;a<=9;a++) /*6*/ { for(b=1;b<=9;b++) /*7*/ { /*8*/ printf("%d*%d=%2d ",a,b,a*b); /*9*/ /*10*/ } /*11*/ printf("\n"); /*12*/ } system("PAUSE"); return 0; } ------------------------------ 基本上內迴圈只有一行不必夸號 但為了要突顯我的問題 所以我夸號 我想問的是 第12行的printf("\n") 不能寫在內迴圈裡面? 也就是第10行 不知是否是因為我的觀念有問題 我對這程式的想法是 執行程式 首先外迴圈a=1 接下來內迴圈b=1 印出1*1=1 這樣 接下來b換行 印出1*2=2 直到1*9=9 內迴圈執行結束 換外迴圈 a=2開始 b=1 然後直行 2*1=2 重複以上 我的邏輯是這樣 結果印出 1*9=9 接下來緊接著2*1=2 2*2=4....完全是直的下去到9*9=81 ---------------------------------------------------------- 以上我的邏輯究竟哪邊有誤? 想請問一下板上的大大們 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.125.20.215

10/04 14:37, , 1F
if(b == 9) printf("\n");
10/04 14:37, 1F

10/04 14:40, , 2F
printf((b==9)?"%d*%d=%2d \n":"%d*%d=%2d ",a,b,a*b)
10/04 14:40, 2F

10/04 14:49, , 3F
非常深奧,看不懂你的直行到底是直的還是橫的。把a, b
10/04 14:49, 3F

10/04 14:49, , 4F
交換不就結了。
10/04 14:49, 4F
直的是b 橫的是a 謝謝大大 我已經知道我問題出在哪了 ※ 編輯: a00779928 來自: 140.125.202.135 (10/04 23:52)
文章代碼(AID): #1GRIeQ8Q (C_and_CPP)
文章代碼(AID): #1GRIeQ8Q (C_and_CPP)