Chaine de caractere recalcitrante

cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010 - 30 juil. 2003 à 19:41
cs_Zeroc00l Messages postés 367 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;
}

4 réponses

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
31 juil. 2003 à 10:42
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
0
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
31 juil. 2003 à 17:06
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 ]}=-
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
31 juil. 2003 à 22:41
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
0
cs_Zeroc00l Messages postés 367 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 11 février 2010
1 août 2003 à 18:06
'endl' c koi ? c pareil que '\0' ?
Tu as mal regarde ma source ! meme : cout << "grrr";
ne marche pas ! Comment expliquer ca ?
-={[ Zeroc00l ]}=-
0
Rejoignez-nous