Remplir un tableau à deux dimensions

wella_salwa Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

Dans mon code j'ai deux fonctions avancer et reculer et un tableau q[100][2].

  • Je veux que la fonction avancer remplisse la première colonne de q.
  • Je veux que la fonction reculer remplisse la seconde colonne de q.

Comment procéder en C++?

3 réponses

  1. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     

    Bonjour,

    Donc avancer va agir sur les q[i][0] et reculer va agir sur les q[i][1]. Je ne sais pas ce que tu appelles "remplir"?

    Et en C++, on évites d'utiliser les tableaux du C. Un tableau à 2 dimensions, je l'aurais vu ici plutôt sous la forme:

    std::array<std::vector<int>,2>  q;

    avec peut-être une fonction avancer qui ajouterait un élément de plus à q[0]

    void  avancer( int nb ) {
        q[0].push_back( nb );
    }
    1
  2. wella_salwa Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
     

    Salut Dalfab , 

    j'ai à l'intérieur une équation pour calculer q , j'ai essayé cette méthode , je sais pas si ca fonctionne : 

    void main () {
        if (a < b) { 
            avancer(i);
            qavancer(i, r); 
        } else {
            reculer(i) ;
            qreculer(i, r);
        }
    }
    
    void qavancer(int q[100][2], int r) {
        q[i][0] = r + 1;
    }
    
    void qreculer(int q[100][2] , int r) {
        q[i][1] = r - 1;
    }
    0
    1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
       

      i n'est pas défini dans ton code. 

      0
  3. PierrotLeFou
     

    La structure pourrait être:
        std::array<std::array<int, 2>, 100> Q;
    Ensuite pourquoi ne pas passer la valeur exacte aux fonctions: r+1 ou r-1 ?
    Tu pourrais n'avoir qu'une seule fonction avec l'indice en paramêtre.
    Faire un enum avec "avancer=0" et "reculer=1"
    Et peut-être pas de fonction du tout? Une simple boucle?

    0