probléme : passage de l'adresse d'une matrice

probléme : passage de l'adresse d'une matrice - C - Programmation

Marsh Posté le 28-04-2006 à 15:46:25    

salut
 
j'ai un probléme avec une partie d'un exercice (dans le passage de l'adresse ... etc) , et je ne vois pas comment je peut faire , alors si quelqu'un peut m'aider :
 
Il faut faire une fonction qui construis une matrice à partire d'un polynôme ,
donc je dois saisir les valeur (les coeficiens) dans une matrice .
 
voici le code que j'ai fait :
 

Code :
  1. #include<stdio.h>
  2. void constructeur( int *a )            /*a c'est le nom de la matrice*/
  3. {
  4. int i,j,maxi,maxj;                         /*maxi et maxj :  les plus grand exposant de X et Y (dans le polynôme)*/
  5. printf("donnez le plus grand exposant de X :  " );
  6. scanf("%d",&maxi);
  7. printf("donnez le plus grand exposant de Y :  " );
  8. scanf("%d",&maxj);
  9. for(i=0 ; i<=maxi ; i++)
  10. for(j=0 ; j<=maxj ; j++)
  11. {
  12.   printf(" la coeficien du monome  ( x^%d * y^%d )   : " , i , j );
  13.   scanf(" %d " , &a[i][j] );      /*c'est la qu'il y a un probléme*/
  14. }
  15. }
  16. main()
  17. {
  18. int t1[30][30];
  19. constructeur( (int*)t1 );   /*on utilise l'opérateur de conversion forcée ("cast" ) */
  20. }

 
 
 
merci
 
 

Reply

Marsh Posté le 28-04-2006 à 15:46:25   

Reply

Marsh Posté le 28-04-2006 à 15:56:02    

renseigne toi sur l'utilisation des pointeurs


---------------
Töp of the plöp
Reply

Marsh Posté le 28-04-2006 à 16:04:42    

_darkalt3_ a écrit :

renseigne toi sur l'utilisation des pointeurs


 
 
mais c'est que le problaime n'est que deans cette ligne

Code :
  1. scanf(" %d " , &a[i][j] );      /*c'est la qu'il y a un probléme*/


 
je ne suis renseigner : et j'est trouver qu'il faut utiliser la matrice comme un vecteur de dimention (m*n)  .
ca s'est bien  :)  
 
mais le prob , est que je dois absolument l'utiliser sous forme de matrice , pour faire ensuite dans l'exercice l'adition de deux poly (avec 2 variable x,y) , et la multiplication ...
 
 :(  :(

Reply

Marsh Posté le 28-04-2006 à 16:06:43    

- corrige tes fautes de français, tu fais mal aux yeux.
- quel est le problème ? plantage ? compilation impossible ? ...
- renseigne toi sur l'utilisation des pointeurs


---------------
Töp of the plöp
Reply

Marsh Posté le 28-04-2006 à 16:11:15    

_darkalt3_ a écrit :

- corrige tes fautes de français, tu fais mal aux yeux.
- quel est le problème ? plantage ? compilation impossible ? ...
- renseigne toi sur l'utilisation des pointeurs


 
 
un liens pour se renseigner sur ce truc ?  svp

Reply

Marsh Posté le 28-04-2006 à 16:14:02    

Reply

Marsh Posté le 28-04-2006 à 16:16:30    

big_dadi_fat a écrit :

un liens pour se renseigner sur ce truc ?  svp


 
 [:ark]


---------------
Töp of the plöp
Reply

Marsh Posté le 28-04-2006 à 16:17:10    


 
 
 :kaola:  :kaola:  :kaola:  
 
 

Reply

Marsh Posté le 28-04-2006 à 22:50:11    

big_dadi_fat,
 
je doutes que le cast de int [][] en int * est propre
si tu tiens absolumment a utiliser 2 dim pour ta matrice alors
 
void constructeur( int a[][30] )            /*a c'est le nom de la matrice*/
{
 int i,j,maxi,maxj;                         /*maxi et maxj :  les plus grand exposant de X et Y (dans le polynôme)*/
 
 printf("donnez le plus grand exposant de X :  " );
 scanf("%d",&maxi);
 
 printf("donnez le plus grand exposant de Y :  " );
 scanf("%d",&maxj);
 
 for(i=0 ; i<=maxi ; i++)
  for(j=0 ; j<=maxj ; j++)
  {
   printf(" la coeficien du monome  ( x^%d * y^%d )   : " , i , j );
   scanf(" %d " , &a[i][j] );      /*c'est la qu'il y a un probléme*/
  }
 
}
 
int main()
{
 int t1[30][30];
 constructeur( t1 );  
     
 return 0;
}

Reply

Marsh Posté le 29-04-2006 à 20:36:04    

big_dadi_fat a écrit :

salut
 
J'ai un problème avec une partie d'un exercice (dans le passage de l'adresse ... etc) , et je ne vois pas comment je peux faire, alors si quelqu'un peut m'aider :
 
Il faut faire une fonction qui construis une matrice à partir d'un polynôme ,
donc je dois saisir les valeur (les coeficients) dans une matrice .
 
merci


 
1 : il faut absolument que tu te rachètes une orthographe et une grammaire ou une méchante dose de concentration.
 
2 : je te conseille vivement d'écrire du code structuré et donc, réutilisable. Parce que il y a au moins dix façons différentes de résoudre ton problème mais il te faut une solution plus ou moins élégante.
 
Personellement, le premier truc que j'aurais fait  serait la création d'un type matrice :

Code :
  1. typedef struct _matrix
  2. {
  3.    int cols;
  4.    int rows;
  5.    int * tab; // on utilise 1 seule dimension mais pour ranger cols * rows entiers.
  6. } matrix;


 
comme tu remarques, on est pas obligé d'avoir un tableau à double dimensions, pourquoi ?
Dans un tableau à 2 dimensions, j'ai cols*rows éléments, avec un tableau à une dimension de cols*rows indexs, il est possible de ranger tous les éléments de la matrice à 2 dimensions et d'atteindre l'élément [i][j] (avec i la colonne et j la ligne) par la notation tab[j*cols + i]
Exemple dans la matrice M de 3 colonnes par 4 lignes :

Code :
  1. 1  2  3
  2. 4  5  6
  3. 7  8  9
  4. 10 11 12


Elle est représenté par le tableau T :

Code :
  1. [1 2 3 4 5 6 7 8 9 10 11 12]


et l'élement à M[2][1] (=6 parce que les index commencent à 0) est bien égale à T[1*3 + 2] soit T[5] (tjs avec les index commençant à 0, c'est à dire que T[0]=1)
Le gain est qu'on utilise un tableau simple, l'inconvénient est que l'accès à une case de la matrice nécessite forcément un calcul de l'index dans le tableau (1 multiplication + 1 addition).
 
Nous savons qu'il est possible de représenter une matrice à 2 dimensions dans un tableau à simple dimensions, maintenant, on a juste besoin de 4 fonctions :
1 : allocation de structure.
2 : désallocation de structure
3 : assignation de valeur dans la matrice
4 : récupération de valeur.
 
allocation de structure :  prend en paramètre le nombre de colonnes, de lignes et renvoit un pointeur vers une structure matrix allouée en mémoire (c'est un exemple, on peut faire autrement):

Code :
  1. matrix * alloc_matrix( int cols, int rows )
  2. {
  3.    matrix * m = (matrix*) calloc( 1, sizeof( matrix ) );
  4.    m->tab = (int*) calloc( cols*rows, sizeof( int ) );
  5.    return m;
  6. }


la désallocation prend juste un pointeur vers une matrice :

Code :
  1. void free_matrix( matrix *m )
  2. {
  3.    free( m->tab );
  4.    free( m );
  5. }


 
maintenant, verrais-tu comment écrire :

Code :
  1. set_value( matrix *m, int x, int y, int value)

??
et  

Code :
  1. get_value( matrix *m, int x, int y)

??
 
et surtout, vois-tu l'intérêt de faire ainsi ???

Message cité 1 fois
Message édité par brojnev le 30-04-2006 à 00:32:46
Reply

Marsh Posté le 29-04-2006 à 20:36:04   

Reply

Marsh Posté le 29-04-2006 à 21:02:30    

brojnev a écrit :

comme tu remarques, on est pas obligé d'avoir un tableau à double dimensions, pourquoi ?
Dans un tableau à 2 dimensions, j'ai cols*rows éléments, avec un tableau à une dimension de cols*rows indexs, il est possible de ranger tous les éléments de la matrice à 2 dimensions et d'atteindre l'élément [i][j] (avec i la colonne et j la ligne) par la notation tab[j*cols + i]
Exemple dans la matrice M de 3 colonnes par 4 lignes :

Code :
  1. 1  2  3
  2. 4  5  6
  3. 7  8  9
  4. 10 11 12


Elle est représenté par le tableau T :

Code :
  1. [1 2 3 4 5 6 7 8 9 10 11 12]


et l'élement à M[2][1] (=6 parce que les index commencent à 0) est bien égale à T[1*3 + 2] soit T[5] (tjs avec les index commençant à 0, c'est à dire que T[0]=1)
Le gain est qu'on utilise un tableau simple, l'inconvénient est que l'accès à une case de la matrice nécessite forcément un calcul de l'index dans le tableau (1 multiplication + 1 addition).


 
Remarquablement bien expliqué. Seul détail à rectifier: que tu travailles en une dimension ou en plusieurs, le calcul "j * col + i" se fera de toute les manières car, en mémoire, il n'y a toujours qu'une seule dimension. Soit c'est toi qui écrit le calcul, soit c'est l'assembleur...
 

brojnev a écrit :

allocation de structure :  prend en paramètre le nombre de colonnes, de lignes et renvoit un pointeur vers une structure matrix allouée en mémoire (c'est un exemple, on peut faire autrement):

Code :
  1. matrix * alloc_matrix( int cols, int rows )
  2. {
  3.    matrix * m = (matrix*) calloc( 1, sizeof( matrix ) );
  4.    m->tab = (int*) calloc( cols*rows, sizeof( int ) );
  5.    return m;
  6. }


la désallocation prend juste un pointeur vers une matrice :

Code :
  1. void free_matrix( matrix *m )
  2. {
  3.    free( m->tab );
  4.    free( m );
  5. }




 
Là, je suis moins d'accord. Tu considères d'office que le programmeur n'utilisera que des pointeurs et tu lui interdis d'utiliser un "matrix m"
 
Moi, ma fonction "alloc" et "free" ne s'occuperaient que de l'allocation et libération de "tab" et je laisserais au programmeur le choix d'utiliser une variable de type "matrix m" en appelant "alloc_matrix(&m)" ou un pointeur "matrix *pt" et en appelant "alloc_matrix(pt)" (en laissant au programmeur le soin d'allouer "pt" )...

Message cité 1 fois
Message édité par Sve@r le 29-04-2006 à 21:11:35

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 30-04-2006 à 00:27:06    

Sve@r a écrit :

Remarquablement bien expliqué. Seul détail à rectifier: que tu travailles en une dimension ou en plusieurs, le calcul "j * col + i" se fera de toute les manières car, en mémoire, il n'y a toujours qu'une seule dimension. Soit c'est toi qui écrit le calcul, soit c'est l'assembleur...


tout à fait exact.
 

Sve@r a écrit :


Là, je suis moins d'accord. Tu considères d'office que le programmeur n'utilisera que des pointeurs et tu lui interdis d'utiliser un "matrix m"
 
Moi, ma fonction "alloc" et "free" ne s'occuperaient que de l'allocation et libération de "tab" et je laisserais au programmeur le choix d'utiliser une variable de type "matrix m" en appelant "alloc_matrix(&m)" ou un pointeur "matrix *pt" et en appelant "alloc_matrix(pt)" (en laissant au programmeur le soin d'allouer "pt" )...


 
Complètement d'accord, c'est pour cette raison que j'ai spécifié que l'on peut faire autrement  :)  
Mais, cependant, je n'aime pas trop l'idée de laisser le soin au programmeur. Évidemment, c'est un choix qui dépend principalement de ce que l'on veut faire. Mon idée de base était surtout de présenter comment fonctionnaliser et aussi, programmer de façon orientée objet en C : Un type de donnée (matrix) + des fonctions pour y accéder.
Dans cette optique, il faut aussi rajouter les fonctions :

Code :
  1. int get_nb_columns ( matrix * m );
  2. int get_nb_rows ( matrix * m);


 
Le problème avec les pointeurs est principalement la vérification de leur validité à effectuer à chaque fois qu'on les utilise, mais, dans notre cas, les vérifications se font dans les 4 fonctions d'accès et la fonction de désallocation.
 
big_dadi_f at !!! c'est pour toi qu'on se prend la tête là ! un feedback serait fort apprécié  :jap:  Tu comprends ce qu'on raconte là où tu fais ça à l'arrache sans structures de données ????


Message édité par brojnev le 30-04-2006 à 00:35:05
Reply

Marsh Posté le 30-04-2006 à 10:16:31    

Citation :


big_dadi_f at !!! c'est pour toi qu'on se prend la tête là ! un feedback serait fort apprécié  :jap:  Tu comprends ce qu'on raconte là où tu fais ça à l'arrache sans structures de donnée


 
merci les gas , mais je ne comprend pas trop , ce vous raconter (je sis débutant en C)
 
par contre j'ai fais le code suivant:
 

Code :
  1. #include<stdio.h>
  2. #define n 7
  3. void constructeur( int *a , int pl , int pc )
  4. {
  5. int i,j;
  6. for(i=0;i<=pl;i++)
  7. for(j=0;j<=pc;j++)
  8. {
  9.   printf("le coeficien du monome  x^%d y^%d : ",i,j);
  10.   scanf("%d",a+(n*i+j));
  11. }
  12. }
  13. void addition( int *aa , int *bb , int *cc , int p , int pp )
  14. {
  15. int i,j;
  16. for(i=0;i<=p;i++)
  17. for(j=0;j<=pp;j++)
  18.   *(cc+(n*i+j)) = *(aa+(n*i+j)) + *(bb+(n*i+j));
  19. }
  20. void soustraction( int *dd , int *rr , int *ss , int h , int hh )
  21. {
  22. int i,j;
  23. for(i=0;i<=h;i++)
  24. for(j=0;j<=hh;j++)
  25.   *(ss+(n*i+j)) = *(dd+(n*i+j)) - *(rr+(n*i+j));
  26. }
  27. main(void)
  28. {
  29. int t1[n][n],t2[n][n],addi[n][n],soust[n][n],l1,c1,l2,c2,l,c,i,j;
  30. for(i=0;i<n;i++)
  31. for(j=0;j<n;j++)
  32.   t1[j] = t2[i][j] = 0;
  33. printf("le 1er poly:\n" );
  34. printf("donnez le plus grand exposant de X :  " );
  35. scanf("%d",&l1);
  36. printf("donnez le plus grand exposant de Y :  " );
  37. scanf("%d",&c1);
  38.   constructeur( (int*)t1 , l1 , c1 );
  39. printf("\n\nla matrice corespendante au 1er poly est:\n" );
  40. for(i=0;i<=l1;i++)
  41. {
  42.   for(j=0;j<=c1;j++)
  43. printf("%d\t",t1[i][j]);
  44. printf("\n" );
  45. }
  46. printf("\n\n\nle 2eme poly:\n" );
  47. printf("donnez le plus grand exposant de X :  " );
  48. scanf("%d",&l2);
  49. printf("donnez le plus grand exposant de Y :  " );
  50. scanf("%d",&c2);
  51.   constructeur( (int*)t2 , l2 , c2 );
  52. printf("\n\nla matrice corespendante au 1er poly est:\n" );
  53. for(i=0;i<=l2;i++)
  54. {
  55.   for(j=0;j<=c2;j++)
  56. printf("%d\t",t2[i][j]);
  57. printf("\n" );
  58. }
  59. if ( l1 > l2 )     l = l1;
  60. else              l = l2 ;
  61. if ( c1 > c2 )     c = c1;
  62. else              c = c2 ;
  63. printf("\n\nla mat addition:\n" );
  64.   addition( (int*)t1 , (int*)t2 , (int*)addi , l , c );
  65. for(i=0;i<=l;i++)
  66. {
  67.   for(j=0;j<=c;j++)
  68. printf("%d\t",addi[i][j]);
  69. printf("\n" );
  70. }
  71. printf("\n\nla mat soustraction:\n" );
  72.   soustraction( (int*)t1 , (int*)t2 , (int*)soust , l , c );
  73. for(i=0;i<=l;i++)
  74. {
  75.   for(j=0;j<=c;j++)
  76. printf("%d\t",soust[i][j]);
  77. printf("\n" );
  78. }
  79. }


 
ditent moi comment je peux l'améliorer  :)  
 
merci
 
[i]notte: je ve aussi afficher le poly.
 
 

Reply

Marsh Posté le 30-04-2006 à 11:10:45    

big_dadi_fat a écrit :

Citation :


big_dadi_f at !!! c'est pour toi qu'on se prend la tête là ! un feedback serait fort apprécié  :jap:  Tu comprends ce qu'on raconte là où tu fais ça à l'arrache sans structures de donnée


 
merci les gas , mais je ne comprend pas trop , ce vous raconter (je sis débutant en C)
 
par contre j'ai fais le code suivant:
 

Code :
  1. #include<stdio.h>
  2. #define n 7
  3. void constructeur( int *a , int pl , int pc )
  4. {
  5. int i,j;
  6. for(i=0;i<=pl;i++)
  7. for(j=0;j<=pc;j++)
  8. {
  9.   printf("le coeficien du monome  x^%d y^%d : ",i,j);
  10.   scanf("%d",a+(n*i+j));
  11. }
  12. }
  13. void addition( int *aa , int *bb , int *cc , int p , int pp )
  14. {
  15. int i,j;
  16. for(i=0;i<=p;i++)
  17. for(j=0;j<=pp;j++)
  18.   *(cc+(n*i+j)) = *(aa+(n*i+j)) + *(bb+(n*i+j));
  19. }
  20. void soustraction( int *dd , int *rr , int *ss , int h , int hh )
  21. {
  22. int i,j;
  23. for(i=0;i<=h;i++)
  24. for(j=0;j<=hh;j++)
  25.   *(ss+(n*i+j)) = *(dd+(n*i+j)) - *(rr+(n*i+j));
  26. }
  27. main(void)
  28. {
  29. int t1[n][n],t2[n][n],addi[n][n],soust[n][n],l1,c1,l2,c2,l,c,i,j;
  30. for(i=0;i<n;i++)
  31. for(j=0;j<n;j++)
  32.   t1[j] = t2[i][j] = 0;
  33. printf("le 1er poly:\n" );
  34. printf("donnez le plus grand exposant de X :  " );
  35. scanf("%d",&l1);
  36. printf("donnez le plus grand exposant de Y :  " );
  37. scanf("%d",&c1);
  38.   constructeur( (int*)t1 , l1 , c1 );
  39. printf("\n\nla matrice corespendante au 1er poly est:\n" );
  40. for(i=0;i<=l1;i++)
  41. {
  42.   for(j=0;j<=c1;j++)
  43. printf("%d\t",t1[i][j]);
  44. printf("\n" );
  45. }
  46. printf("\n\n\nle 2eme poly:\n" );
  47. printf("donnez le plus grand exposant de X :  " );
  48. scanf("%d",&l2);
  49. printf("donnez le plus grand exposant de Y :  " );
  50. scanf("%d",&c2);
  51.   constructeur( (int*)t2 , l2 , c2 );
  52. printf("\n\nla matrice corespendante au 1er poly est:\n" );
  53. for(i=0;i<=l2;i++)
  54. {
  55.   for(j=0;j<=c2;j++)
  56. printf("%d\t",t2[i][j]);
  57. printf("\n" );
  58. }
  59. if ( l1 > l2 )     l = l1;
  60. else              l = l2 ;
  61. if ( c1 > c2 )     c = c1;
  62. else              c = c2 ;
  63. printf("\n\nla mat addition:\n" );
  64.   addition( (int*)t1 , (int*)t2 , (int*)addi , l , c );
  65. for(i=0;i<=l;i++)
  66. {
  67.   for(j=0;j<=c;j++)
  68. printf("%d\t",addi[i][j]);
  69. printf("\n" );
  70. }
  71. printf("\n\nla mat soustraction:\n" );
  72.   soustraction( (int*)t1 , (int*)t2 , (int*)soust , l , c );
  73. for(i=0;i<=l;i++)
  74. {
  75.   for(j=0;j<=c;j++)
  76. printf("%d\t",soust[i][j]);
  77. printf("\n" );
  78. }
  79. }


 
ditent moi comment je peux l'améliorer  :)  
 
merci
 
[i]notte: je ve aussi afficher le poly.


 
Hum... je suis horrifié de tout ça et surtout que cela fonctionne...
 
Bon, les gros pb  
1) scanf("%d",a+(n*i+j));        => là, je comprends rien à ce que tu veux faire. Probablement que le compilo non plus...
2) t1 est un tableau en 2 dimensions. Quand tu passes "t1" à "constructeur", tu lui passes un "int[n][n]" (on pourrait être tenté d'écrire "int **" mais lorsque tu ferais "t[i][j]", le compilo ne connaissant pas la taille d'une ligne ne pourra pas calculer "i * nbcol + j" donc non) mais en aucun cas un "int *" => Evidemment, tu le castes en (int*) pour éviter les warning mais vaut mieux, pour éviter les warning, supprimer la cause du warning que masquer cette cause => soit tu bosses en 1 dimension du début à la fin, soit tu bosses en 2D mais tu mélanges pas les 2 façons de faire...
 
Pour améliorer:
- tu fais 2 fois une saisie "plus grand exposant" etc. Autant programmer une fonction qui fasse ça et tu appelles cette fonction pour t1 et pour t2 (une surcouche à "constructeur" en fait)
- c'est dommage qu'à chaque fois tu sois obligé de passer à tes fonctions ton tableau, l et c (3 paramètre par matrice). Si, comme l'a dit brojnev tu créais une structure "s_matrix" contenant  

  • ton tableau
  • l
  • c

Il te suffirait de passer juste l'adresse de cette structure à tes fonctions (un seul paramètre par matrice) qui auraient automatiquement accès à l'ensemble des éléments de la matrice et dans le main() ça t'éviterait 6 variables "t1, t2, l1, l2, c1, c2" là où on pourrait n'en mettre que 2
- "main" est de type "int"
 
Voilà en gros. Ensuite, des commentaires expliquant ta façon de voir l'algo seraient appréciés...


Message édité par Sve@r le 30-04-2006 à 11:56:36

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 30-04-2006 à 12:00:54    

Sve@r > je crois que tu n'as pas compris ce qu'est un tableau 2d, un 'int **' peux contenir l'adresse d'un 'int *' ou l'adresse d'un tableau 'int *', mais certainement pas l'adresse d'un tableau 2d
 
l'adresse d'un tableau 'int [n][n]' est typée 'int (*)[n]'
 
le prototype correcte pour constructeur est
 
void constructeur( int (*a)[n] , int pl , int pc )
 
ou (strictement equivalent)
 
void constructeur( int a[][n] , int pl , int pc )

Reply

Marsh Posté le 30-04-2006 à 12:06:22    

skelter a écrit :

Sve@r > je crois que tu n'as pas compris ce qu'est un tableau 2d, un 'int **' peux contenir l'adresse d'un 'int *' ou l'adresse d'un tableau 'int *', mais certainement pas l'adresse d'un tableau 2d


 
J'ai dit "on pourrait" => c'est un conditionnel sous entendant "si on ne savait pas ce qu'est un tableau 2d on pourrait..."
 

skelter a écrit :

ou (strictement equivalent)
void constructeur( int a[][n] , int pl , int pc )


 
Oui, c'est ce que j'ai écrit (sauf que j'y ai mis le nb d'éléments de la première dimension puisqu'il est connu...)
 


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 30-04-2006 à 19:20:38    

mais je ne comprend pas bien ce que
 
void constructeur( int a[][30] )
 
veut dire !
 
 
et méme si je l'utilise comme ca:

Code :
  1. void constructeur( int a[][30] )            /*a c'est le nom de la matrice*/
  2. {
  3. int i,j,maxi,maxj;                         /*maxi et maxj :  les plus grand exposant de X et Y (dans le polynôme)*/
  4. printf("donnez le plus grand exposant de X :  " );
  5. scanf("%d",&maxi);
  6. printf("donnez le plus grand exposant de Y :  " );
  7. scanf("%d",&maxj);
  8. for(i=0 ; i<=maxi ; i++)
  9.   for(j=0 ; j<=maxj ; j++)
  10.   {
  11.    printf(" la coeficien du monome  ( x^%d * y^%d )   : " , i , j );
  12.    scanf(" %d " , &a[i][j] );   
  13.   }
  14. }
  15. int main()
  16. {
  17. int t1[30][30];
  18. constructeur( t1 ); 
  19.    
  20. return 0;
  21. }


 
ca me permetra peut etre de diminuer les argument de constructeur ,  
mais les autre fonction (addition et soustraction) reste -aubligatoirement- avec tout ses argument ?
 
et pour l'utilisation des structure je ne vois pas comment je peut faire ! ( une peutite proposition de votre part pourait me permetre de commencer )
merci

Reply

Marsh Posté le 30-04-2006 à 23:51:58    

marre des fautes de français, malgré le fait que je te l'ai signalé plusieurs fois, tu t'en fous.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

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