Voici une fonction d'affichage de votre tableau 2d:
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';
}
Appelez simplement comme ça dans votre main():
int main()
{
int m[3][3] = { { 2, 1, 8 }, { 5, 3, 9 }, { 2, 0, 9 } };
print_it(m);
return 0;
}
Eh bien, ce n'est pas vraiment une bonne implémentation (ni moderne). Cela ne fonctionne certainement que pour les tableaux qui ont la taille 3 x 3 (sauf vous si aller pour des pointeurs, en passant des tailles ... mais cela devient salissant). Donc, s'il vous plaît envisager d'utiliser des conteneurs modernes comme <vector>
(ou <array>
, comme vous l'avez inclus). Que vous pouvez imprimer tout tableau nxm:
#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';
}
Qualifiant
int main(){
std::vector<std::vector<int>> m{ { 2, 1, 8 }, { 5, 3, 9 }, { 2, 0, 9 } };
print_it(m);
return 0;
}
Vous obtenez la sortie désirée:
Medal 0 1 2
---------------------------------
Country1 2 1 8
Country2 5 3 9
Country3 2 0 9
Notez que vous pouvez changer m à toute matrice de nxm, comme :
std::vector<std::vector<int>> m{ { 2, 5 }, { 9, 5 }, { 10, 15 }, { 0, 2 }, { 5, 7 } };
print_it(m);
pour obtenir:
Medal 0 1
---------------------------------
Country1 2 5
Country2 9 5
Country3 10 15
Country4 0 2
Country5 5 7