Problème sous linux

Signaler
Messages postés
24
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
26 avril 2007
-
Messages postés
149
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
17 mai 2007
-
Je suis trop blasée : j'avais commencé un programme avec Dev c++ et il fonctionnait mais
à la fac on doit le faire sous linux et
là.................................................. ça marche plus.
Par exemple pour ça :
p=0;
if (m==1)
  {for (i=1; i<6; i++)
  {if (vect[i]==1)
    p=p+1;
  }
  }
cout<<p;

(vect[1],... vect[5] sont des nombres aléatoires entre 1 et 6)
là même si aucun vect[i]=1 il me retourne quand même 1 !

10 réponses

Messages postés
87
Date d'inscription
jeudi 22 juin 2006
Statut
Membre
Dernière intervention
24 septembre 2007

Si p = 1, ca veut dire que la condition vect[i] == 1 est vérifiée une seule et unique fois.

On pourrais voire comment est remplis le tableau vect[] ?
Messages postés
24
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
26 avril 2007

#include


#include <stdlib.h>


#include <stdio.h>


#include <time.h>


using namespace std ;


 


int hasard(int min, int max);


 


int hasard(int min, int max, int prec)


{srand(time(NULL)+prec);


int nb;


nb=rand() % (max-min) + min;


return nb;


}


main ()


{ int a, b, c, d, e, i, n, p, m, j, temp ;


int vect[5];


int min = 1;


int max = 7; 


srand(time(NULL));


//premier lancer


a=hasard(min, max, 1);


b=hasard(min, max, a);


c=hasard(min, max, b);


d=hasard(min, max, c);


e=hasard(min, max, d);




vect[1]=a;


vect[2]=b;


vect[3]=c;


vect[4]=d;


vect[5]=e;


//tri du vecteur


for (i=1; i<5; i++)


{for (j=i; j<6; j++)


{if (vect[i]>vect[j])


{temp=vect[i];


vect[i]=vect[j];


vect[j]=temp;} } }


 


cout<<"Que voulez-vous faire ? \n As=1 \n Deux=2 \n Trois=3 \n Quatre=4 \n Cinq=5 \n Six=6 \n Petite suite=7 \n Grande suite=8 \n Full=9 \n Carre=10 \n Yams=11 \n Chance=12 \n"<<endl;


cin>>m;


p=0;


//As


if (m==1)


{ for (i=1; i<6; i++)


{if (vect[i]==1)


p=p+1;


}


}
cout<<"points : "<
( idem pour m==2 sauf que p=p+2 et vect[i]=2 et ainsi de suite)

sauf que le problème c'est que même si aucun n'est égal à 1 il me met la valeur 1 dans p !!!!
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Salut,

Petite précision :

int vect[5];

Déclare un tableau d'entiers indicés de 0 à 4.

vect[5] tape à côté du tableau...
Messages postés
24
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
26 avril 2007

Ok merci je vais revoir ça
Messages postés
24
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
26 avril 2007

Ooooops petit problème j'ai appuyé trop vite.
Donc je dois commencer à vect[0] pour finir à vect[4]  c'est bien ça ?
Messages postés
24
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
26 avril 2007

Est-ce que j'ai fait une erreur de syntaxe ?

if (m==9)
if ((vect[0]==vect[1]) && ((vect[1]=vect[2]) || (vect[2]==vect[3])) && (vect[3]==vect[4]))
p=45;

je veux dire que si on a 3des identiques + 2 identiques on a 45 points sachant que les des sont triés dans le vecteur
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Il te manque un égale dans vect[1]=vect[2].


"je veux dire que si on a 3des identiques + 2 identiques on a 45 points sachant que les des sont triés dans le vecteur"


Ca veut dire que seul les combinaisions du style 1,1,1,2,2 et 1,1,2,2,2 sont bonnes ?


Si oui, le bon test serait plutôt :


(((v0==v1==v2) && (v3==v4)) || (v0==v1) && (v2==v3==v4)))


A confirmer pour les == multiples.
Messages postés
24
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
26 avril 2007

Merci je vais essayer ça. Pour le = qu'il manquait je l'avais vu et je l'ai rajouté mais j'ai oublié de le rajouté dans le message
Messages postés
24
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
26 avril 2007

J'ai essayé et ça marche toujours pas même si j'ai 112222 il m'affiche 0points
Messages postés
149
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
17 mai 2007
1
Salut,
Bon donc ton code marche maintenant pour m==1 ?
Pour le code m==9 il faut effectivement faire if ((v0==v1) && (v3==v4) && ((v1==v2) || (v2==v3)))
( attention a bien mettre les parentheses)
Voilà
@+