problème en langage c
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

problème en langage c



  1. #1
    invitefa5adbe1

    Question problème en langage c


    ------

    salut tout le monde!
    Ecrire un programme qui transfère un tableau M à deux dimensions L et C (dimensions maximales: 10 lignes et 10 colonnes) dans un tableau V à une dimension L*C.

    Exemple:
    / \
    | a b c d | / \
    | e f g h | ==> | a b c d e f g h i j k l |
    | i j k l | \ /
    \ /

    CORRIGE:
    Code:
    #include <stdio.h>
    main()
    {
     /* Déclarations */
     int M[10][10]; /* tableau à 2 dimensions */
     int V[100];    /* tableau à 1 dimension  */
     int L, C;      /* dimensions       */
     int I, J;      /* indices courants */
    
     /* Saisie des données */
     printf("Nombre de lignes   (max.10) : ");
     scanf("%d", &L );
     printf("Nombre de colonnes (max.10) : ");
     scanf("%d", &C );
     for (I=0; I<L; I++)
        for (J=0; J<C; J++)
            {
             printf("Elément[%d][%d] : ",I,J);
             scanf("%d", &M[I][J]);
            }
     /* Affichage du tableau 2-dim */
     printf("Tableau donné :\n");
     for (I=0; I<L; I++)
        {
         for (J=0; J<C; J++)
              printf("%7d", M[I][J]);
         printf("\n");
        }
     /* Transfer des éléments ligne par ligne */
     for (I=0; I<L; I++)
          for (J=0; J<C; J++)
                 V[I*C+J] = M[I][J];
      /* Affichage du tableau 1-dim */
     printf("Tableau résultat : ");
     for (I=0; I<L*C; I++)
         printf("%d ", V[I]);
     printf("\n");
     return 0;
    }
    Ma question:
    pourquoi " V[I*C+J] "??? comment on a fait pour l'obtenir?

    -----
    Dernière modification par Jack ; 05/01/2014 à 18h51. Motif: ajout balises code

  2. #2
    Jack
    Modérateur

    Re : problème en langage c

    Décidément, tu es fâché avec la lecture des règles du forum:
    http://forums.futura-sciences.com/pr...eau-forum.html

    C'est tout de même plus lisible lorsque le code est bien présenté

  3. #3
    Jack
    Modérateur

    Re : problème en langage c

    Citation Envoyé par Salma-moi Voir le message
    pourquoi " V[I*C+J] "??? comment on a fait pour l'obtenir?
    Dessine ton tableau d'origine, ton tableau final et numérote les cases. Tu verras, la réponse est assez évidente

  4. #4
    bisou10

    Re : problème en langage c

    Salut,

    c'est le calcul de la position de l'élement dans le tableau à 1 dimension en fonction de ton tableau initial LxC...

  5. A voir en vidéo sur Futura
  6. #5
    invitefa5adbe1

    Re : problème en langage c

    merci jack
    j'ai déjà fais ca mais j'ai pas bien compris

  7. #6
    invitefa5adbe1

    Re : problème en langage c

    oui je sais bisou10 mais j'arrive pas a bien saisir pourquoi on a multiplier i par le nombre de colonne

  8. #7
    Jack
    Modérateur

    Re : problème en langage c

    Citation Envoyé par Salma-moi Voir le message
    merci jack
    j'ai déjà fais ca mais j'ai pas bien compris
    Pourtant ça devrait te sauter aux yeux!

    pourquoi on a multiplier i par le nombre de colonne
    Parce qu'une ligne fait C colonnes.
    On stocke les lignes les unes au bout des autres. Pour C=10, la ligne 0 occupera les cases 0 à 9, la ligne 1 les cases 10 à 21, etc.
    la ligne i occupera donc les case C*i à C*i + 9

  9. #8
    invitefa5adbe1

    Re : problème en langage c

    Parce qu'une ligne fait C colonnes.
    On stocke les lignes les unes au bout des autres. Pour C=10, la ligne 0 occupera les cases 0 à 9, la ligne 1 les cases 10 à 21, etc.
    la ligne i occupera donc les case C*i à C*i + 9
    ah oui ca veut dire qu'on varie pas la colonne, justement les lignes

  10. #9
    Jack
    Modérateur

    Re : problème en langage c

    Citation Envoyé par Salma-moi Voir le message
    ah oui ca veut dire qu'on varie pas la colonne, justement les lignes
    J'avoue ne pas trop comprendre ce que tu dis là ...

  11. #10
    invitefa5adbe1

    Re : problème en langage c

    Citation Envoyé par Jack Voir le message
    J'avoue ne pas trop comprendre ce que tu dis là ...
    vous m'avez dit que par exemple "Pour C=10, la ligne 0 occupera les cases 0 à 9, la ligne 1 les cases 10 à 21, etc."
    alors est ce qu'on ne varie pas se 10 c'est a dire qu'on remplit tout les case du tableau en se servant de la colonne C=10

  12. #11
    Jack
    Modérateur

    Re : problème en langage c

    en se servant de la colonne C=10
    C'est n'est pas une colonne, mais le nombre de colonnes

  13. #12
    invitefa5adbe1

    Re : problème en langage c

    C'est n'est pas une colonne, mais le nombre de colonnes
    ah wé c'est ça maintenant j'comprends
    merci infiniment jack pour votre réponse

  14. #13
    Jack
    Modérateur

    Re : problème en langage c

    C'est le principal.

    A+

Discussions similaires

  1. probleme langage c
    Par MANTA.. dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 09/03/2012, 12h56
  2. probleme en langage C
    Par invitea0383756 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 12/12/2009, 14h02
  3. J'ai un problème de langage c
    Par invitecfe0939f dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 23/11/2008, 16h33
  4. Problème en langage VBA
    Par invite588da7a7 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 09/07/2004, 14h00