IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Incrémentation / tableau


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Par défaut Incrémentation / tableau
    Bonjour j'ai commencé depuis peu le c++, je fais des exercices trouvés à gauche à droite sur internet (d'ailleurs si vous avez des ouvrages ou recueils avec des exercices je suis preneur) et la j'essaye simplement de prendre le contenu d'un tableau, l'inverser, et le mettre dans un second tableau. Merci à vous en espérant ne pas vous voir trop critique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    //
     
    #include <iostream>
    using namespace std;
     
    int main() {
        int const tailletab1(10);
        int tab1[tailletab1];
        tab1[0] = 123;
        tab1[1] = 418;
        tab1[2] = 447;
        tab1[3] = 2822;
        tab1[4] = 471;
        tab1[5] = 258;
        tab1[6] = 2818;
        tab1[7] = 4787;
        tab1[8] = 472;
        tab1[9] = 999;
     
        int const tailletab2(10);
        int tab2[tailletab2];
     
        for (int i(0); i<tailletab1; i++) {
            int ii = 9;
            tab2[ii] = tab1[i]; ii--;
            cout << ii << endl ;
            cout << tab2[ii] << endl;
            cout << tab1[i] << endl;
     
     
     
        }
     
     
        return 0;
    }

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 151
    Billets dans le blog
    4
    Par défaut
    Salut,

    as-tu testé ton code ? Il ne marche pas, vu que ii est toujours initialisé à 9 et ne vaut jamais rien d'autre que 9 (enfin si, 8 quand tu l'affiches, ce qui n'a pas grande incidence).

    inverser un tableau (codes non testés)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    constexpr int Taille = 10;
    int tab[Taille] = {0,1,2,3,4,5,6,7,8,9};
    int tab2[Taille];
     
    // cas trivial, on itère tab dans l'ordre, insère dans tab2 dans l'ordre inverse
    for (int i = 0; i < Taille; ++i)
      tab2[Taille - 1 - i] = tab[i];
     
    // on inverse tab2 "in place"
    memcpy(tab2, tab, Taille * sizeof(int));
    for (int i = 0; i < Taille / 2; ++i)
    {
      int tmp = tab2[i];
      tab2[i] = tab2[Taille - 1 - i];
      tab2[Taille - 1 - i] = tmp;
    }
     
    // C++14 ou plus, utilisation de la std pour faire bien
    auto itTab2 = std::begin(tab2);
    for (auto it = std::crbegin(tab); it != std::crend(tab); ++it, ++itTab2)
      *itTab2 = *it;
    Il en existe probablement d'autres, et en utilisant std::vector tu aurais d'autres options encore.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Par défaut
    Merci beaucoup pour cette réponse, la dernière fonction je l'ai pas encore vu donc je la laisse de côté même si elle a l'air plutôt puissante, par contre je ne comprends pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // cas trivial, on itère tab dans l'ordre, insère dans tab2 dans l'ordre inverse
    for (int i = 0; i < Taille; ++i)
      tab2[Taille - 1 - i] = tab[i];
    Je vois pas ce que fait la ligne 2 ni sa logique

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Exécute la boucle sur papier, et pour chaque valeur de i (allant de 0 à 9 inclus ici), calcule celle de Taille - 1 - i.

    On n'oubliera pas de mentionner la fonction écrite exprès pour cela : std::reverse .

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Par défaut
    Ah oui je vois mieux, merci à toi, je vais jeter un coup d'oeil à std::reverse, sujet résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Incrémentation Tableau dynamique
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/03/2018, 12h38
  2. [XL-2003] macro incrémentation tableau sur une autre page
    Par poesy dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/04/2010, 10h59
  3. Réponses: 7
    Dernier message: 07/11/2008, 18h58
  4. Auto-incrémentation tableau extensible
    Par glucas59 dans le forum InfoPath
    Réponses: 2
    Dernier message: 24/04/2008, 16h27
  5. Incrémenter lignes d'un tableau
    Par skea dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/01/2005, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo