Inversion de matrices en C

Inversion de matrices en C - C - Programmation

Marsh Posté le 08-10-2013 à 18:34:59    

Bonjour tout le monde,
ON travaille en TP à faire un programme C où l'on doit écrire les éléments d'une matrice carrée et on cherche à l'inverser (sinon on dira qu'elle est singulière).
C compliqué de le faire, et c pour ça que je fais appel à vous :D Voilà le début du programme et la fonction qui peut déclarer les éléments de la matrice mais apparemment y a un truc qui va pas :
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. void declaration_elements_matrice (void);
  4. short int dimension_matrice;
  5. short int ligne;
  6. short int colonne;
  7. short int matrice[dimension_matrice][dimension_matrice];
  8. int main()
  9. {
  10. fprintf(stdout, "Entrez la dimension de la matrice : " );
  11. fscanf(stdin, "%hd", &dimension_matrice );
  12. declaration_elements_matrice();
  13. return 0;
  14. }
  15. void declaration_elements_matrice (void)
  16. {
  17. short int matrice[dimension_matrice][dimension_matrice];
  18.      fprintf(stdout, "Entrez les éléments de la matrice %hdx%hd\n", dimension_matrice, dimension_matrice);
  19.      for (ligne=1 ; ligne<=(dimension_matrice) ; ligne++)
  20.      {
  21.          fprintf(stdout, "Ligne %d : ", ligne);
  22.          fscanf(stdin, "%hd,%hd,%hd,%hd", &matrice[ligne-1][0], &matrice[ligne-1][1],&matrice[ligne-1][2], &matrice[ligne-1][3]);
  23.      }
  24. printf("Prêt à tester ?\n" );
  25.         getchar();
  26.         printf("Voici la matrice écrite : \n" );
  27.      for (ligne=1 ; ligne<=taille_matrice ; ligne++)
  28.      {
  29.         printf("%hd,%hd,%hd,%hd \n", matrice[ligne-1][0], matrice[ligne-1][1],matrice[ligne-1][2], matrice[ligne-1][3]);
  30.      }
  31. }


 
Merci pour votre aide ;)


Message édité par gilou le 08-10-2013 à 20:26:54
Reply

Marsh Posté le 08-10-2013 à 18:34:59   

Reply

Marsh Posté le 08-10-2013 à 18:55:08    

1/ évite les variables globales
2/ si tu veux travailler sur des matrices de taille variable, il faudra faire de l'allocation dynamique de mémoire, ce que tu as écrit ne peux pas fonctionner.

Reply

Marsh Posté le 08-10-2013 à 18:58:40    

ca marche comment ? (Je débute en C j'ai oublié de préciser :p)

Reply

Marsh Posté le 08-10-2013 à 19:13:53    

Si tu débutes (je m'en doutais), je vais pas t'abreuver avec des double pointeurs (**matrice) et des malloc.
Dans ce cas tu es obligé de travailler avec des matrices de taille fixe (ou du moins ayant une certaine taille max).

Reply

Marsh Posté le 08-10-2013 à 20:18:30    

Bon j'vais commencer par une matrice max 4x4 alors.  
Alors maintenant c'est comment calculer le déterminant de la matrice ? (on a choisi le déterminant car ce dernier montre si la matrice est inversible ou pas => si elle n'est pas nulle)

Reply

Marsh Posté le 09-10-2013 à 14:54:04    

Reply

Sujets relatifs:

Leave a Replay

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