Je me demandais s'il était possible d'imprimer un tableau 2D en C comme c'est le cas en python. Par exemple, si j'ai int array1[10][10];
alors remplissez le tableau puis printf("%li", array1)
ne semble pas fonctionner. En C, y a-t-il quelque chose comme printf
qui peut imprimer array1
en tant que [1, 2, 3, 4]
? en python, il serait juste print(array1)
imprimer un tableau 2D en C
Répondre
Malheureusement, il n'y a pas de façon standard de le faire. La façon d'imprimer votre tableau serait:
int array1[] = {1, 2, 3, 4};
size_t i = 0;
for (i = 0; i < 4; i++){
printf("%d ", array1[i]);
}
Notez que pour être plus correct, vous pouvez obtenir la taille du tableau en utilisant sizeof
:
int array1[] = {1, 2, 3, 4};
int i = 0;
for (i = 0; i < sizeof(array1)/sizeof(int); i++){
printf("%d ", array1[i]);
}
Certaines personnes détiendrait que vous devez utiliser size_t
au lieu de int
pour l'index, puisque c'est ce que sizeof
retourne.
EDIT: Python peut imprimer le tableau entier parce que le tableau est stocké non seulement comme un tas de chiffres en mémoire, mais comme une structure de données qui stocke d'autres informations aussi bien, comme la longueur du tableau.
Y at-il une fonction que quelqu'un a écrit qui le fait de la manière la plus nette possible? – tekknolagi
Il est préférable d'éviter les littéraux de taille de tableau lorsque cela est possible (principe DRY). Au lieu de cela, '#define NELTS (a) (sizeof (a)/sizeof ((a) [0])) // nombre d'éléments de tableau' et remplacez ce' 4' par 'NELTS (array1)' –
La réponse directe est "non" ... vous devez le coder vous-même. Et il n'est pas possible d'écrire une routine de dumper général en C car la taille des tableaux n'est pas connue.
alors comment est-il fait en python ??? – tekknolagi
@tekknolagi "la taille des tableaux est ... connue". Autrement dit, la taille est stockée en tant qu'attribut du tableau et peut être interrogée. Cela est vrai pour la plupart des langages de programmation modernes. –
oh je vois ... alors y a-t-il une implémentation de base en C? – tekknolagi
Plus précisément, lors de l'impression d'un tableau 2D en C, vous aurez besoin de mettre en œuvre une double boucle for:
// dans le code pseudo
- tableau hypothétiquement appelé myArray
- obtenir la largeur de la matrice, appeler j
- obtenir la longueur de la matrice, appeler k
- pour (a = 0; un < j; a ++) {
- .... pour (b = 0; b < k; b ++) {
- ........ printf ("% d", myArray [a] [b]);
- ....}
- }
// Int array [10][10];
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
Print("%d",array[i][j]);
}
}
En utilisant ce code, vous pouvez imprimer tableau 2D en C
Il ne sera même pas compiler en C. – gonczor
- 1. Comment imprimer tableau 2D à la console en C#
- 2. Impossible de concevoir/imprimer un tableau 2D
- 3. Ruby: comment imprimer un tableau 2D?
- 4. Carte C++ 2d? Comme un tableau 2d?
- 5. Comment trier un tableau 2D en C#
- 6. C++, manipuler un tableau 2d
- 7. C# déclarant un tableau 2D
- 8. convertir un tableau double 2d en un tableau int 2d
- 9. Comment imprimer un double tableau 2D dans showMessageDialog?
- 10. Imprimer tableau C++ en Objective-C "NSLog"
- 11. Comment convertir un tableau char 2d en tableau int 2d?
- 12. tableau 2d Struct - C -
- 13. Comment imprimer un tableau d'images générées en C#
- 14. Chargement d'éléments d'un fichier dans un tableau 2D en C++
- 15. Cartographie du tableau 2D en C#
- 16. Impression d'un tableau 2D en C
- 17. impression tableau 2d (en-têtes)
- 18. Comment créer un tableau 2D en D?
- 19. 2d erreur de tableau C++
- 20. Tableau 2D de pointeurs C
- 21. Comment supprimer un tableau 2D en Objective-C (cacao)
- 22. Essayer de remplir un tableau 2d de structures en C++
- 23. Comment dynamique attribuer un tableau global 2d en C++
- 24. Moyenne et variance en C++ avec un tableau 2d
- 25. Comment déclarer un tableau 2D en Objective-C?
- 26. Concaténation en C avec un tableau de char 2D
- 27. Convertir un tableau 1D en vecteur 2D C++
- 28. Passer un tableau 2D de pointeurs en C
- 29. destructeur d'un pointeur vers un tableau dynamique 2d en C++
- 30. Aide de tableau 2D C++
Votre titre mentionne des tableaux 2D, mais votre exemple est sur les tableaux 1D. Est-ce intentionnel? – MAK
non ... désolé va corriger – tekknolagi
Ceci est un nit, mais '[1, 2, 3, 4]' n'est pas comment un tableau 2D serait imprimé. –