Problème sous linux

cs_Etoiline Messages postés 24 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 26 avril 2007 - 24 avril 2007 à 11:42
emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 - 29 avril 2007 à 13:38
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

Cphil51 Messages postés 87 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 24 septembre 2007
24 avril 2007 à 12:43
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[] ?
0
cs_Etoiline Messages postés 24 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 26 avril 2007
24 avril 2007 à 18:09
#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 !!!!
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
25 avril 2007 à 12:53
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...
0
cs_Etoiline Messages postés 24 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 26 avril 2007
25 avril 2007 à 13:00
Ok merci je vais revoir ça
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Etoiline Messages postés 24 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 26 avril 2007
25 avril 2007 à 13:01
Ooooops petit problème j'ai appuyé trop vite.
Donc je dois commencer à vect[0] pour finir à vect[4]  c'est bien ça ?
0
cs_Etoiline Messages postés 24 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 26 avril 2007
25 avril 2007 à 17:18
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
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
25 avril 2007 à 18:12
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.
0
cs_Etoiline Messages postés 24 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 26 avril 2007
26 avril 2007 à 11:03
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
0
cs_Etoiline Messages postés 24 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 26 avril 2007
26 avril 2007 à 13:06
J'ai essayé et ça marche toujours pas même si j'ai 112222 il m'affiche 0points
0
emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 2
29 avril 2007 à 13:38
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à
@+
0
Rejoignez-nous