Partage
  • Partager sur Facebook
  • Partager sur Twitter

ordre croissant ou décroissant - élément tableau

Sujet résolu
    28 novembre 2020 à 12:50:54

    Bonjour,

    j'a crée une fonction pour comparer chaque élément d'un tableau avec le suivant et évaluer si l'ordre est croissant ou décroissant

    #include <stdio.h>
    #include <stdlib.h>
    
    int upORdown(int array[50], int i, int lenght)
    {
        for(i=0; i<lenght-1; i++)
        {
        if (array[i]<array[i+1])
            {
                printf("up");
            }
        else
            {
                printf("down");
            }
        }
    }
    
    int main(int argc, char* argv[]) {
    
    int  i, lenght;
    int array[50];
    
    scanf("%d", &lenght);
    
    for (i=0; i<lenght; i++)
        {
        scanf("%d", &array[i]);
        }
    
    upORdown(array, i, lenght);
    
        return 0;
    }
    

    mais je n'arrive pas à trouver une solution pour avoir un seul résultat qui évalue tout le tableau (par exemple : pour tableau[4] = {15, 9, 5, 2}, le résultat est "ordre est décroissant des éléments").

    Pouvez-vous m'aider s'il vous plait?

    Merci en avance :)

    • Partager sur Facebook
    • Partager sur Twitter
      28 novembre 2020 à 14:07:29

      Indente ton code, et met ton tableau en dur dans le code, ça sera déjà beaucoup plus facile pour tester !

      Pour ton problème, tu peux utiliser deux variables, une qui compte les up et une qui compte les down, puis analyser le résultat, si les deux variables sont supérieur à 0 ton tableau n'est pas ordonné, si seulement le up est supérieur à 0 il est croissant si seulement de down est supérieur à 0 il est décroissant. (prévoir à gérer les variables de même valeur consécutives). 

      • Partager sur Facebook
      • Partager sur Twitter
        28 novembre 2020 à 18:19:23

        et ne pas oublier les cas de bords →quel est le résultat pour un tableau vide ? pour un tableau d'un élément ?
        • Partager sur Facebook
        • Partager sur Twitter
          28 novembre 2020 à 19:12:00

          Si tu as un tableau du genre 1 5 2 6 3 7 4 8 etc.
          Tu auras forcément des up and down. Très dur pour le moral d'un programme ...
          Ou gbien tutestes s'il est en ordre croissant, ou bien en ordre décroissant, ou bien dans le désordre.
          Tu pourrais initialiser le nombre de up et de down à 0 et tu augmentes chacun à la place des printf() respectifs.
          Si les deux sont non nuls, le tableau est en désordre. Si down est 0, c'est en ordre croissant, si up est 0, c'est en ordre décroissant.
          Et tu testes tout ça seulement à la fin de la boucle et tu affiches le résultat adéquat à ce moment.
          • Partager sur Facebook
          • Partager sur Twitter

          Le Tout est souvent plus grand que la somme de ses parties.

            3 décembre 2020 à 9:46:46

            Bonjour @rouloude, @White Crow et @PierrotLeFou,

            merci pour vos conseils, le programme marche bien ! :) 

            @rouloude, je connaissais pas l'expression "coder en dur". Merci aussi pour ça :)

            • Partager sur Facebook
            • Partager sur Twitter

            ordre croissant ou décroissant - élément tableau

            × 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