這裏是你的二維數組的顯示功能:
void print_it(const int m[3][3]){
cout << "Medal " << 1 << '\t' << 2 << '\t' << 3 << endl;
cout << '\n';
cout << "Country1 " << m[0][0] << '\t' << m[0][1] << '\t' << m[0][2] << << '\n';
cout << "Country2 " << m[1][0] << '\t' << m[1][1] << '\t' << m[1][2] << << '\n';
cout << "Country3 " << m[2][0] << '\t' << m[2][1] << '\t' << m[2][2] << << '\n';
}
在簡單地這樣稱呼它,你的main():
int main()
{
int m[3][3] = { { 2, 1, 8 }, { 5, 3, 9 }, { 2, 0, 9 } };
print_it(m);
return 0;
}
那麼,這不是一個很好的(既不現代的)實現。這當然只適用於大小爲3 x 3的數組(除非你使用指針,傳遞大小......但是這會變得麻煩)。所以,請考慮使用像<vector>
(或<array>
,因爲你包括它)的現代容器。比你可以打印任何n×m的數組:
#include <vector>
#include <iostream>
void print_it(const std::vector<std::vector<int>> &m){
std::cout << "Medal ";
for (int i = 0; i < m[0].size(); ++i){
std::cout << i << '\t';
}
std::cout << "\n---------------------------------\n";
for (int y = 0; y < m.size(); ++y){
std::cout << "Country" << y + 1 << ' ';
for (int x = 0; x < m[0].size(); ++x){
std::cout << m[y][x] << '\t';
}
std::cout << '\n';
}
調用它
int main(){
std::vector<std::vector<int>> m{ { 2, 1, 8 }, { 5, 3, 9 }, { 2, 0, 9 } };
print_it(m);
return 0;
}
你得到所需的輸出:
Medal 0 1 2
---------------------------------
Country1 2 1 8
Country2 5 3 9
Country3 2 0 9
請注意,您可以更改米到任何n×m的陣列,像:
std::vector<std::vector<int>> m{ { 2, 5 }, { 9, 5 }, { 10, 15 }, { 0, 2 }, { 5, 7 } };
print_it(m);
得到:
Medal 0 1
---------------------------------
Country1 2 5
Country2 9 5
Country3 10 15
Country4 0 2
Country5 5 7