Sequance d alternance paire et impaire ds un tableau [Résolu]

Signaler
Messages postés
40
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
9 mai 2007
-
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
-
Bonjour à tous
voila je suis débutant et j'aimerai bien connaître la solution de cet énoncé.




Soit un tableau d'entier. Une séquence paire est une suite d'entiers pairs. Une séquence impaire est une suite d'entiers impairs. Une séquence alternée est une suite d'entiers où il n y a pas deux entiers consécutifs ayant la même parité.
Ecrire une méthode permettant de déterminer la taille (nombre d'entier) de la séquence alterné la plus longue dans le tableau.




Exemple: la méthode doit rendre la valeur 6 pour un tableau contenant les valeurs suivantes:




                            2   2   3   5   4   8   4   1   6   9   4   1   3   6   4




Merci pour avoir pris le temps de lire et si vous connaissez la réponse, n'hésitez pas :) .
Bonne journée à toute et à tous.
voila mon code je suis bloqué je ne trouve pas mon erreur

public static int sequence(int t[], int x)
    {
        int i = 0;
        int j = i + 1;        int cpt 0; int l 0;
       
        while (i < x)
        {
           
            if (t[i] % 2 != 0)
            {
                while (t[i] % 2 != 0 && t[j] % 2 == 0)
                {
                    i++; l++;
                    if (t[i]%2!=0&&t[j]%2!=0)
                    {
                        if (cpt<l) cpt=l;
                    l = 0;
                    }




                   
                }
            }
            else while (t[i] % 2 == 0 && t[j] % 2 != 0)
                {
                    i++; l++;
                    if (cpt < l) cpt = l;
                }
        } return cpt;
    }

5 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
BOOL Pair(int a)
{
       return !(a % 2);
}

int Alternee(int *Tab, UINT iSize)
{
      int i, iLen, iMaxLen;
     
     
      if (iSize <= 0)
           return 0;
           
      iLen = 1;
      iMaxLen = 1;
      
      for(i=0; i iMaxLen)
                                     iMaxLen = iLen;
               }
               else
                        iLen = 1;
      }
      return iMaxLen;
}

if(!Meilleur("Joky")) return ERREUR;<
Messages postés
233
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
5 juillet 2008

http://www.cppfrance.com/infomsg_TABLEAU-ENTIER-SEQUENCE_745908.aspx#2

strick9 > une seule fois suffit dans le forum. meme si ça te donne 2 solutions à ta question pour cette fois
++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
if(nbr & 1) IMPAIR
pas besoin de fonction pour cela.

ciao...
BruNews, MVP VC++
Messages postés
40
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
9 mai 2007

oui désolé, je sais bien qu'il faut poster un sujet qu'une seule fois mais je ne savais pas comment effacer l'ancien car j ai voulu poster sous le thème algorithme/maths.
en tout cas merci pour les réponses et bon code a tous.
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
C'est vrai pour la fonction lol...
J'avais pas pensé à ça :s
if(!Meilleur("Joky")) return ERREUR;<