Partage
  • Partager sur Facebook
  • Partager sur Twitter

Croissant décroissant

Sujet résolu
Anonyme
    2 septembre 2023 à 11:47:00

    • Écrire un programme qui demande à l’utilisateur de taper 10 entiers qui seront stockés dans un tableau. Le programme doit ensuite afficher soit « le tableau est croissant », soit « le tableau est décroissant », soit « le tableau est constant », soit « le tableau est quelconque ».

    Voici mon code :

    int main()
    
    {
        int i;
        bool croissant, decroissant;
        std::array<int, 5> const tableau_de_5_entiers{ 1, 2, 3, 4, 5 };
        for (i = 0; i < 5; i++)
        {
            if (tableau_de_5_entiers[i] > tableau_de_5_entiers[i + 1])
            {
                croissant = false;
    
            }
    
            if (tableau_de_5_entiers[i] < tableau_de_5_entiers[i + 1])
            {
                decroissant = false;
    
            }
    
        }
        if (croissant && decroissant)
        {
            std::cout << "Le tableau est constant" << std::endl;
    
        }
        if (croissant && !decroissant)
        {
            std::cout << "Le tableau est croissant" << std::endl;
    
        }
        if (!croissant && decroissant)
        {
            std::cout << "Le tableau est décroissant" << std::endl;
    
        }
        return 0;
    }

    Mais j'ai ça : 



    -
    Edité par Anonyme 2 septembre 2023 à 11:47:57

    • Partager sur Facebook
    • Partager sur Twitter
      2 septembre 2023 à 11:59:50

      Attention aux indices des tableaux. Ils vont de 0 à N-1. donc quand dans ta boucle for tu fais :

      tableau_de_5_entiers[i + 1]

      quand i vaut 4 (i+1) référence une case en dehors de ton tableau, d'ou le plantage !

      • Partager sur Facebook
      • Partager sur Twitter
      ...
        2 septembre 2023 à 12:35:20

        Il y a d'autres erreurs, le compilateur a dû te les signaler dans la fenêtre sortie (output).

        Et, en cliquant sur le bouton Recommencer du dialogue qui est apparu, puis en affichant la pile des appels (call stack), tu as accès a la ligne où s'est produite l'erreur que t'a indiqué @rouloude.

        • Partager sur Facebook
        • Partager sur Twitter

        En recherche d'emploi.

        Anonyme
          2 septembre 2023 à 13:23:15

          "en affichant la pile des appels (call stack), tu as accès a la ligne où s'est produite l'erreur "

          Je vois pas comment on fait pour afficher la pile des appels 





          -
          Edité par Anonyme 2 septembre 2023 à 13:49:13

          • Partager sur Facebook
          • Partager sur Twitter
            2 septembre 2023 à 17:38:35

            La pile des appels, c'est pas franchement intéressant à regarder quand il n'y a qu'un main.

            PS:

            • ne pas oublier d'initialiser les indicateurs croissant et décroissant.
            • quand i vaut 4 (le plus grand indice correct), i+1 vaut 5. D'où "subscript out of range" quand on essaie de s'en servir comme indice dans un tableau à 5 éléments.

            -
            Edité par michelbillaud 2 septembre 2023 à 19:48:44

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme

            Croissant décroissant

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown