Transposition d'une matrice

Transposition d'une matrice - C - Programmation

Marsh Posté le 25-01-2013 à 19:16:18    

Salut à tous.
Voila j'ai un exo à faire dont voici la consigne :  
 
Ecrire un programme qui effectue la transposition tA d'une matrice A de dimensions N et M en une matrice de dimensions M et N.
 
a) La matrice transposée sera mémorisée dans une deuxième matrice B qui sera ensuite affichée.
 
b) La matrice A sera transposée par permutation des éléments.
 
Voila ce que j'ai fait :
 
a)
#include <stdio.h>
main()
{
 /* Déclarations */
 int A[50][50];  /* matrice initiale */
 int B[50][50];  /* matrice résultat */
 int N, M;       /* dimensions des matrices */
 int I, J;       /* indices courants */
 
 /* Saisie des données */
 printf("Nombre de lignes   (max.50) : " );
 scanf("%d", &N );
 printf("Nombre de colonnes (max.50) : " );
 scanf("%d", &M );
 for (I=0; I<N; I++)
    for (J=0; J<M; J++)
        {
         printf("Elément[%d][%d] : ",I,J);
         scanf("%d", &A[I][J]);
        }
 /* Affichage de la matrice */
 printf("Matrice donnée :\n" );
 for (I=0; I<N; I++)
    {
     for (J=0; J<M; J++)
          printf("%7d", A[I][J]);
     printf("\n" );
    }
 /* Affectation de la matrice transposée à B */
 for (I=0; I<N; I++)
     for (J=0; J<M; J++)
          B[J][I]=A[I][J];
  /* Edition du résultat */
 /* Attention: maintenant le rôle de N et M est inversé. */
  printf("Matrice résultat :\n" );
 for (I=0; I<M; I++)
    {
     for (J=0; J<N; J++)
          printf("%7d", B[I][J]);
     printf("\n" );
    }
 return 0;
}  
   
 
b)
#include <stdio.h>
main()
{
 /* Déclarations */
 int A[50][50];  /* matrice donnée           */
 int N, M;       /* dimensions de la matrice */
 int I, J;       /* indices courants         */
 int AIDE;       /* pour la permutation      */
 int DMAX;       /* la plus grande des deux dimensions */
 
 /* Saisie des données */
 printf("Nombre de lignes   (max.50) : " );
 scanf("%d", &N );
 printf("Nombre de colonnes (max.50) : " );
 scanf("%d", &M );
 for (I=0; I<N; I++)
    for (J=0; J<M; J++)
        {
         printf("Elément[%d][%d] : ",I,J);
         scanf("%d", &A[I][J]);
        }
 /* Affichage de la matrice */
 printf("Matrice donnée :\n" );
 for (I=0; I<N; I++)
    {
     for (J=0; J<M; J++)
          printf("%7d", A[I][J]);
     printf("\n" );
    }
 /* Transposition de la matrice A par permutation des   */
 /* éléments [I][J] à gauche de la diagonale principale */
 /* avec les éléments [J][I] à droite de la diagonale.  */
 DMAX = (N>M) ? N : M;
 for (I=0; I<DMAX; I++)
     for (J=0; J<I; J++)
         {
          AIDE = A[I][J];
          A[I][J] = A[J][I];
          A[J][I] = AIDE;
         }
  /* Edition du résultat */
 /* Attention: maintenant le rôle de N et M est inversé. */
  printf("Matrice résultat :\n" );
 for (I=0; I<M; I++)
    {
     for (J=0; J<N; J++)
          printf("%7d", A[I][J]);
     printf("\n" );
    }
 return 0;
 
 
Le problème c'est que quand je les lance sous CodeBlocks ça me dit fichier pas encore construit. Voulez vous le construire?
Quand je clic sur oui rien ne se passe.
 
Pouvez vous m'aidez à résoudre ce problème?
En vous remerciant d'avance.
 
 

Reply

Marsh Posté le 25-01-2013 à 19:16:18   

Reply

Marsh Posté le 26-01-2013 à 12:49:53    

Donc tu as codé ça, sans  erreur mais sans savoir comment on compile...
 [:winpoks]


---------------
sheep++
Reply

Marsh Posté le 27-01-2013 à 13:43:47    

Sans erreur je sais pas car j'arrive justement pas à compiler. Je l'ai fait à partir de cours donc je voudrai savoir ou est ce que j'ai foirer (ça m’étonnerai que j'ai pas fait d'erreurs).

Reply

Marsh Posté le 27-01-2013 à 15:39:13    

Ben j'ai compilé, y'a pas d'erreur (mis à part une ligne manquante à la fin de ton b) ).
 
Je trouve tout à fait bizarre que tu sois capable de sortir ce code (tout bien indenté et commenté, sans erreur de syntaxe) mais que tu sois incapable de faire la base: la compilation.
 
D'autant que les tuto sur devCPP c'est pas ça qui manque sur le net et qu'avec un léger effort tu aura la solution à ton problème.


---------------
sheep++
Reply

Marsh Posté le 27-01-2013 à 15:50:57    

http://www.ltam.lu/cours-c/solex72.htm :jap:

 

Ai au moins le courage de dire que ce code n'est pas de toi.


Message édité par Terminapor le 27-01-2013 à 15:51:55

---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 27-01-2013 à 20:02:34    

Le code n'est pas entièrement de moi vu que je l'ai fait à partir d'un exo qu'on avait déjà fait en classe, je l'ai juste modifié.
Mon soucis c'est que je sais pas utiliser CodeBlocks, c'est la première fois que je l'utilise, raison pour laquelle je demandais votre aide. Il faut vraiment que je le fasse fonctionner sous ce logiciel.
Donc savez vous ce que je doit faire svp?

Reply

Marsh Posté le 27-01-2013 à 20:04:36    

Terminator : merci pour le site, si j'avais su que la réponse était sur internet, je me serai bien passer des deux jours ou je me suis cassé la tête à trouver le code.

Reply

Marsh Posté le 27-01-2013 à 21:11:21    

Tu fais sans CodeBlocks et tu compiles en ligne de commande:
gcc -Wall -o transpose transpose.c

 

Ca te sortira un exécutable nommé transpose (ou transpose.exe sous windows). Ensuite tu le lances ainsi:
./transpose sous Linux
transpose.exe sous windows

 

Et après tu arrêtes de pomper les solutions sur le net et de prendre les gens pour des buses. Ton prof te foutra le zéro que tu mérites.


Message édité par el muchacho le 27-01-2013 à 21:12:26

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 27-01-2013 à 21:45:31    

MrSecret a écrit :

Terminator : merci pour le site, si j'avais su que la réponse était sur internet, je me serai bien passer des deux jours ou je me suis cassé la tête à trouver le code.


Non mais faut arrêter là, le code que tu as posté à les même commentaires aux mêmes endroits, les mêmes noms de variables, c'est pas crédible une seule seconde ton histoire :D
 
Ça sert a rien de pomper du code comme ça, une recherche sur google sur un commentaire et c'est bon, on a trouvé direct ta source, et tu n'apprend rien, à un devoir sur tabl tu sera noyé.


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 28-01-2013 à 03:37:55    

MrSecret a écrit :

Terminator : merci pour le site, si j'avais su que la réponse était sur internet, je me serai bien passer des deux jours ou je me suis cassé la tête à trouver le code.


 
Tu sais, quand on sait un minimum coder, on reconnaît un code pompé d'un code original. Que la structure soit globalement la même pourquoi pas, mais comme dit précédemment, les mêmes commentaires, les mêmes noms de variables (pas forcément explicites d'ailleurs), le code identique au caractère près, ça n'arrive jamais :D
 
Et pire encore, venir nous prendre pour des buses c'est un peu fort, on est ni tes parents ni ton prof donc on s'en fout un peu mais un minimum d’honnêteté serait la bienvenue :o


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 28-01-2013 à 03:37:55   

Reply

Marsh Posté le 28-01-2013 à 11:14:47    

Et c'est pas comme si y avait pas 10 000 crétins faisant la même chose ici tous les ans... et après ça bidonne les CV en espérant passer les interviews...


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 28-01-2013 à 12:48:05    

Surtout que mettre toutes les variables en majuscules, c'est pas truc qu'on voit souvent :/ Le code est donc complètement pompé...  :pfff:


Message édité par rufo le 28-01-2013 à 12:48:26

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

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