作者yauhh (喲)
看板C_and_CPP
標題Re: [問題]C++ 九九乘法表 如何用if來寫呢??
時間Tue Feb 2 19:49:48 2010
※ 引述《lianchiamin (lianchiamin)》之銘言:
: 這是我跟我同學想到的問題
: 現在有想到用do while寫
: 但卻不知道如何用if來寫
記得國小的墊板嗎?
#include <iomanip>
enum Major {row, col};
void multiple_table(enum Major m, int fromRow, int fromCol,
int toRow, int toCol);
int main(int argc, char *argv[]) {
multiple_table(col, 2, 1, 5, 9);
cout << endl;
multiple_table(col, 6, 1, 9, 9);
system("pause");
return EXIT_SUCCESS;
}
void multiple_table(enum Major m, int fromRow, int fromCol,
int toRow, int toCol) {
if (m == col) {
if (fromCol >= toCol) {
if (fromRow >= toRow) {
cout << fromRow << " * " << fromCol << " = "
<< setw(2) << (fromRow * fromCol) << endl;
return;
} else {
cout << fromRow << " * " << fromCol << " = "
<< setw(2) << (fromRow * fromCol) << " ";
multiple_table(col, fromRow+1, fromCol, toRow, toCol);
}
} else {
multiple_table(col, fromRow, fromCol, toRow, fromCol);
multiple_table(col, fromRow, fromCol+1, toRow, toCol);
}
} else /* if (m == row) */ {
if (fromRow >= toRow) {
if (fromCol >= toCol) {
cout << fromRow << " * " << fromCol << " = "
<< setw(2) << (fromRow * fromCol) << endl;
return;
} else {
cout << fromRow << " * " << fromCol << " = "
<< setw(2) << (fromRow * fromCol) << " ";
multiple_table(row, fromRow, fromCol+1, toRow, toCol);
}
} else {
multiple_table(row, fromRow, fromCol, fromRow, toCol);
multiple_table(row, fromRow+1, fromCol, toRow, toCol);
}
}
}
輸出為:
----------------------------------------------
2 * 1 = 2 3 * 1 = 3 4 * 1 = 4 5 * 1 = 5
2 * 2 = 4 3 * 2 = 6 4 * 2 = 8 5 * 2 = 10
2 * 3 = 6 3 * 3 = 9 4 * 3 = 12 5 * 3 = 15
2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 5 * 4 = 20
2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30
2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35
2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40
2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45
6 * 1 = 6 7 * 1 = 7 8 * 1 = 8 9 * 1 = 9
6 * 2 = 12 7 * 2 = 14 8 * 2 = 16 9 * 2 = 18
6 * 3 = 18 7 * 3 = 21 8 * 3 = 24 9 * 3 = 27
6 * 4 = 24 7 * 4 = 28 8 * 4 = 32 9 * 4 = 36
6 * 5 = 30 7 * 5 = 35 8 * 5 = 40 9 * 5 = 45
6 * 6 = 36 7 * 6 = 42 8 * 6 = 48 9 * 6 = 54
6 * 7 = 42 7 * 7 = 49 8 * 7 = 56 9 * 7 = 63
6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 9 * 8 = 72
6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
請按任意鍵繼續 . . .
----------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.67.72
→ sunneo:我只記得暗黑的電板 02/02 23:17
→ VictorTom:cool....XD 02/02 23:58