Problème avec un tableau à deux dimensions !

Problème avec un tableau à deux dimensions ! - C++ - Programmation

Marsh Posté le 10-06-2002 à 20:54:59    

Je suis débutant et je n'arrive pas à finir mon programme !!
Il sagit d'un programme tout bete qui remplit un tableau alloué dynamiquement et qui l'affiche !
J'arrive à le faire avec une dimension mais pas avec plusieurs voici le code que j'ai fait pour un tableau à deux dimension mais je n'arrive pas à remplir entièrement les fonctions printf et scanf !
 
 
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void remplissage(int taille, int** t)
  4. {
  5. int i,j;
  6. for(j=0;j<taille;j++)
  7. {
  8.   for(i=0;i<taille;i++)
  9.   {
  10.    printf("t[%d][%d] : ",j,i);
  11.    scanf("%d",??????);       // je galère là
  12.   }
  13. }
  14. }
  15. void affichage(int taille, int** t)
  16. {
  17. int i,j;
  18. for(j=0;j<taille;j++)
  19. {
  20.   for(i=0 ; i<taille ; i++)
  21.   {
  22.    printf("t[%d][%d] = %d\t",j+1,i+1,??????);  // et ici
  23.   }
  24.   printf("\n" );
  25. }
  26. }
  27. int main()
  28. {
  29. int taille;
  30. int **t;
  31. printf("Donnez la taille de votre tableau : " );
  32. scanf("%d",&taille);
  33. t = (int**) malloc(sizeof(int)*taille*taille);
  34. remplissage(taille,t);
  35. affichage(taille,t);
  36. free(t);
  37. return 0;
  38. }

 
 
Merci d'avance


Message édité par Mystnux le 06-10-2002 à 20:55:47
Reply

Marsh Posté le 10-06-2002 à 20:54:59   

Reply

Marsh Posté le 10-06-2002 à 21:07:42    

mystnux a écrit a écrit :

Je suis débutant et je n'arrive pas à finir mon programme !!
Il sagit d'un programme tout bete qui remplit un tableau alloué dynamiquement et qui l'affiche !
J'arrive à le faire avec une dimension mais pas avec plusieurs voici le code que j'ai fait pour un tableau à deux dimension mais je n'arrive pas à remplir entièrement les fonctions printf et scanf !
 
 
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void remplissage(int taille, int** t)
  4. {
  5. int i,j;
  6. for(j=0;j<taille;j++)
  7. {
  8.   for(i=0;i<taille;i++)
  9.   {
  10.    printf("t[%d][%d] : ",j,i);
  11.    scanf("%d",??????);       // je galère là
  12. scanf("&d" ); // essaie ca  
  13.   }
  14. }
  15. }
  16. void affichage(int taille, int** t)
  17. {
  18. int i,j;
  19. for(j=0;j<taille;j++)
  20. {
  21.   for(i=0 ; i<taille ; i++)
  22.   {
  23.    printf("t[%d][%d] = %d\t",j+1,i+1,??????);  // et ici
  24.   }
  25.   printf("\n" );
  26. }
  27. }
  28. int main()
  29. {
  30. int taille;
  31. int **t;
  32. printf("Donnez la taille de votre tableau : " );
  33. scanf("%d",&taille);
  34. t = (int**) malloc(sizeof(int)*taille*taille);
  35. remplissage(taille,t);
  36. affichage(taille,t);
  37. free(t);
  38. return 0;
  39. }

 
 
Merci d'avance  




---------------
Je Suis En Phase Creative...
Reply

Marsh Posté le 10-06-2002 à 21:09:53    

mystnux a écrit a écrit :

Je suis débutant et je n'arrive pas à finir mon programme !!
Il sagit d'un programme tout bete qui remplit un tableau alloué dynamiquement et qui l'affiche !
J'arrive à le faire avec une dimension mais pas avec plusieurs voici le code que j'ai fait pour un tableau à deux dimension mais je n'arrive pas à remplir entièrement les fonctions printf et scanf !
 
 
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void remplissage(int taille, int** t)
  4. {
  5. int i,j;
  6. for(j=0;j<taille;j++)
  7. {
  8.   for(i=0;i<taille;i++)
  9.   {
  10.    printf("t[%d][%d] : ",j,i);
  11.    scanf("%d",??????);       // je galère là
  12.   }
  13. }
  14. }
  15. void affichage(int taille, int** t)
  16. {
  17. int i,j;
  18. for(j=0;j<taille;j++)
  19. {
  20.   for(i=0 ; i<taille ; i++)
  21.   {
  22.    printf("t[%d][%d] = %d\t",j+1,i+1,??????);  // et ici
  23. printf("%d",t[j+1][i+1]);
  24.   }
  25.   printf("\n" );
  26. }
  27. }
  28. int main()
  29. {
  30. int taille;
  31. int **t;
  32. printf("Donnez la taille de votre tableau : " );
  33. scanf("%d",&taille);
  34. t = (int**) malloc(sizeof(int)*taille*taille);
  35. remplissage(taille,t);
  36. affichage(taille,t);
  37. free(t);
  38. return 0;
  39. }

 
 
Merci d'avance  




---------------
Je Suis En Phase Creative...
Reply

Marsh Posté le 10-06-2002 à 21:11:14    

Ça ne sert à rien de "upper" ton topic après ¼h (ni même 2 minutes), et encore moins de retaper tout le contenu de ton premier post


Message édité par antp le 06-10-2002 à 21:12:00

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-06-2002 à 21:19:54    

Antp ==> si ton message s'adressait à moi je suis désolé de te décevoir mais je n'ai pas uppé mon topic c'est ki2koo qui m'a donné deux solution !
 
sinon pour les réponses qu'il ma donné : je ne comprends pas le scanf("&d" ) !
et dois-je mettre quelque chose après parce que lorsque je mets scanf("&d",t[j][i]) j'ai une erreur de segmentation !
 
 
et pour le printf je ne vois pas pourquoi tu mets i+1 et j+1 !
 
et j'aimerai aussi savoir l'écrire sous la forme : *(t+i) mais avec un tableau à deux dimensions !

Reply

Marsh Posté le 10-06-2002 à 21:21:06    

désolé j'avais pas vu :sweat:  
Honte à moi.
Faut dire que ça avait l'air tellement similaire...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-06-2002 à 21:31:54    

Le sanf doit prendre une adresse, donc :
   scanf("&d", &t[j][i]);
 
Pour pouvoir l'écrire avec des pointeurs :
   scanf("%d", (t + j*taille + i) );
 
ça devrait marcher à peu près...

Reply

Marsh Posté le 10-06-2002 à 21:35:59    

merci c'est ce que je venais juste de trouver pour le printf mais j'ai remplacé le scanf par : scanf("%d",t+j*taille+i) parce que je ne savais pas qu'on pouvait mettre un "&d" !!!
 
donc voila ce que j'ai maintenant !!
scanf("%d",t+j*taille+i);
printf("t[%d][%d] = %d ",i+1,j+1,*(t+j*taille+i));
 
voilà si ca peut aider quun !!
 
et tout marche nickel merci !!!


Message édité par Mystnux le 06-10-2002 à 21:41:43
Reply

Marsh Posté le 10-06-2002 à 22:14:45    

mystnux a écrit a écrit :

 
 
sinon pour les réponses qu'il ma donné : je ne comprends pas le scanf("&d" ) !
 
 




 
elle STP


---------------
Je Suis En Phase Creative...
Reply

Marsh Posté le 10-06-2002 à 22:15:40    

dis moi c en C ou en C++?
car les double pointeurs en C++, j'en ai pas vu juste vu en C...
 
merci!!


---------------
Je Suis En Phase Creative...
Reply

Marsh Posté le 10-06-2002 à 22:15:40   

Reply

Marsh Posté le 10-06-2002 à 22:27:40    

excuses moi pour le "il" !!!
 
et c'est bien du C, je suis en première année de Deug MIAS et c'est même hors programme ! c'est pour dire à la vitesse à laquelle on va !

Reply

Marsh Posté le 11-06-2002 à 05:50:05    

te plains pas, moi je me suis tape du scheme et du maple  :sarcastic:  
 
enfin pour ton programme, pourquoi tu utilises une double indirection ?
 
ca risque pas de marcher....
 
pour le scanf de remplissage, tu remplaceras par ca:
 
scanf("%d", t + (i * j) + i(ou j, je sais plus));
ps: avec une seule indirection bien sur!, si tu veux garder les deux, rajoutes un &

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed