Comment imprimer les tableaux 2d avec la fonction en C++?
Je suis en train de faire une fonction qui imprime deux dimensions des tableaux.
J'ai fait un qui imprime tableaux 1d.
#include <iostream>
using namespace std;
void printArray (int theArray[],int sizeOfArray);
int main ()
{
int array1[3] = {1,3,7};
int array2[5] = {123,5,23,2,324};
printArray(array1, 3);
printArray(array2, 5);
}
void printArray (int theArray[],int sizeOfArray){
for (int x=0; x<sizeOfArray; x++) {
cout<<theArray[x] <<" ";
}
cout<<endl;
}
J'ai écrit ces codes pour l'impression 2d tableaux, mais j'ai échoué.
#include <iostream>
using namespace std;
void printArray (int theArray[][],int sizeOfRow, int sizeOfCol);
int main ()
{
int array[2][3] = {{1,3,7},{5,3,2}};
printArray(array, 2,3);
}
void printArray (int theArray[][],int sizeOfRow, int sizeOfCol){
for (int x=0; x<sizeOfRow; x++)
for (int y=0; y<sizeOfCol; y++) {
cout<<theArray[x][y] <<" ";
}
cout<<endl;
}
Mon compilateur dit tableau est incomplet élément de type 'int[]'.
Quels sont les codes pour l'impression 2d tableaux?
- Votre boucle est très bien, mais je pense que le problème ici est la nécessité de spécifier la taille de la colonne sur
theArray
- Vous pouvez inclure le prettyprinter et dire
cout << theArray;
🙂 - proche de la gare et de la lecture.
- "La logique est que les tableaux ne sont pas des pointeurs. int theArray[] ne signifie pas que vous êtes le passage d'un tableau (que vous ne pouvez pas passer par valeur, de toute façon), mais un pointeur c'est un sucre syntaxique pour int* a plutôt amer et ancien sucre qui provient de C). int theArray[][], si elle est valable, serait la même que int (*theArray)[] (un pointeur vers un tableau). Le problème est, int[] est un type incomplète et que le compilateur ne sait pas ce que le pointeur se serait. Ainsi, vous devez spécifier la taille et lui indiquer qu'il doit pointer vers un tableau de trois entiers: int (*theArray)[3], de même que int[][3]" [écrit par jrok]
- Votre réponse n'était pas mauvais, bien, pas besoin de le supprimer.
Vous devez vous connecter pour publier un commentaire.
Depuis la taille du tableau doit être connu lors de la compilation, vous pouvez utiliser des modèles pour apporter de la souplesse à la fonction.
c'est beaucoup plus agréable car il n'est pas nécessaire de passer de la dimension de la matrice de n'importe où, aussi de de travail pour la 3D, 4D tableau par l'ajout de paramètres pour le modèle.
sizeOfCol
ensuite puisqu'il est implicitement "passé" commeN
, sauf si vous souhaitez imprimer uniquement une partie de tableau.Pour un tableau multidimensionnel, vous devez déclarer la taille du tableau dans votre déclaration de fonction.
Donc votre méthode doit ressembler à:
Alors il doit compiler et de travail.
Une astuce pour l'impression de deux dimensions des tableaux -- il est plus facile d'utiliser les variables r et c (c'est à dire de lignes et de colonnes) de visualiser la façon dont le tableau est imprimé.
Comme indiqué ci-dessus, la taille de la colonne est REQUISE par la langue lors du passage de la 2d tableaux.
La fonction header () doit se présenter comme suit: