Chaine de caractere recalcitrante

Messages postés
370
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010
- - Dernière réponse : cs_Zeroc00l
Messages postés
370
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010
- 1 août 2003 à 18:06
AIDER moi siouplaaaaaaaaaiiit je vais peter un cable ...

Je dev sous VC++ 6

Creer un nouveau projet :
coller ce code.Bien qu'ilparraisse complique il n'en est rien pour mon probleme. En effet je ne comprend pas pourquoi la ligne avec les smileys ne veux pas s'afficher.
ATTENTION apparement je me suis rendu compte en faisant apercu de mon message, que l'operateur plus n'apparaissait pas

Donc quand vous rencontrez deux valeurs qui se suivent il y à un plus entre, comme 'C 1' 'N 1' '(FN-1) 1 1' (la il y deux plus, car trois valeurs) ...

Merci d'avance !

#include

int Go();
double Puiss(int N,int P);

int main()
{
int i;
Go();
cout << "fin";
cin >> i;
return 0;
}

int Go()
{

int N =4 ;
long FN =0 ;
int C =0, K =0;
int T =0;
double P =0;
FN = 1 ;
for ( K = 2; K<N+1; K++)
FN = FN * K ;
char *Combi = new char[ (FN-1) +1 +1];
Combi[0]=' ';
Combi[FN+1] = '\0'; //bon je le fais une fois
Combi[1]='0';


int *plST = new int[FN-1];
plST[0] = N + 1;
for (K=1; K<FN; K++)
plST[K] = 0 ;
int *plC = new int[N+1];
for (K=1; K<N; K++)
plST[K] = 0 ;
long *plEXIST = new long[FN];
for (K=1; K<FN+1; K++)
plST[K] = 0 ;

T = 0;
C = 2;
P = Puiss(N, FN - 1 );
plEXIST[1] =0;
for( K = 1; K<=N; K++ )
plEXIST[1] = plEXIST[1] + K * Puiss (10,K - 1 );

for (T = 1; T<FN+1; T++) //la je n'y touche pas
Combi[T] = '0' ;
Combi[FN+1]='\0'; // j le refais encore une fois pour etre sur
cout << Combi; // :( :( :( :( ca ne marche pas .. PK ?

WC:

C = C + 1;
P = P - Puiss (N ,FN - C);
for (T = C; T>FN-1; T++ ){
P = P + plST[T] * Puiss (10 ,FN - 1 - T);
plST[T] = 0;
}

do {
C = C - 1;
plST[C] = (plST[C] + 1) % N ;

Combi[C] = 48 + plST[C];
if (plST[C] == plST[C - 1] && plST[C])
goto WC;
} while (!plST[C] || C==0);
if (C==0) {
cout << "Toutes les possibilités ont été testées.";
return 0;
}

for (K = 1;K<N+1; K++)
plC[K] = N + 1 - K;

C = 0;

K=0;
while (K<FN)
{
K++;
if (plST[K] == plST[K - 1]) {
C = K;
K = FN - 1;
continue;
}

T = plC[plST[K] + 1];
plC[plST[K] + 1] = plC[plST[K] + 1 - N * int((plST[K] + 1) / N) + 1];
plC[plST[K] + 1 - N * int((plST[K] + 1) / N) + 1] = T;
plEXIST[K + 1] = 0;
for (T = 1; T<=N; T++)
plEXIST[K + 1] = plEXIST[K + 1] + plC[T] * Puiss(10,N - T);

for (T = 1; T<=K; T++) {
if (plEXIST[K + 1] == plEXIST[T])
{ C = K + 1;
T = K;
K = FN;
}
}
}

if (C) goto WC;

delete [] plST;
delete [] plC;
delete [] plEXIST;

cout << "Fin";
return 0;
}

double Puiss( int N, int P) {
double Ps = 1;
for (int i=1; i<P+1; i++) {
Ps *= N;
}
return Ps;
}
Afficher la suite 

4 réponses

Messages postés
950
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
0
Merci
Tu as mis en breakpoint sur la ligne qui te pose problème et fait tourner le programme sous le debugger ?

Kaid - kaid.fr.st
Commenter la réponse de cs_Kaid
Messages postés
370
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010
0
Merci
Bien sur que oui, mais bizarrement le cout ne fonctionne pas ...
J'ai meme essayer de mettre :
cout << "grrr";
juste en dessous pour voir ca n'affiche rien ! (je suis sur que le debugger asse dessus ! ) alors la je ne comprend plus rien ! ca devrait normalement l'afficher sans probleme ca !
:(((

-={[ Zeroc00l ]}=-
Commenter la réponse de cs_Zeroc00l
Messages postés
950
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
0
Merci
Tu peux essayer d'afficher la valeur ASCII de tous les caractères de ta chaine pour voir s'il n'y a pas un zéro qui traine.
J'espère que ton problème n'est pas l'oubli d'un simple 'endl'.

Kaid - kaid.fr.st
Commenter la réponse de cs_Kaid
Messages postés
370
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
11 février 2010
0
Merci
'endl' c koi ? c pareil que '\0' ?
Tu as mal regarde ma source ! meme : cout << "grrr";
ne marche pas ! Comment expliquer ca ?
-={[ Zeroc00l ]}=-
Commenter la réponse de cs_Zeroc00l