这里是你的二维数组的显示功能:
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