Mélanger des lettres

picollus Messages postés 4 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 24 août 2004 - 24 août 2004 à 16:22
picollus Messages postés 4 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 24 août 2004 - 24 août 2004 à 21:51
Bonjour,

Est-ce que quelqu'un pourait me dire comment je dois faire pour que les 10 caractères se trouvant dans un tableau qui contient les 10 premières lettres de l'alphabet, soient affichées dans le désordre.

merci

2 réponses

DevGizmo Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 27 février 2007 1
24 août 2004 à 17:28
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

void MySRand()
{
static bool seeded = false;

if( !seeded )
{
seeded = true;
srand( GetTickCount() );
}
}

BOOL AlreadyExist(char *szTable, char itemToTest)
{
unsigned long i;
unsigned long tableLength = strlen(szTable);

for(i=0; i<tableLength; i++)
{
if( szTable[i] == itemToTest )
return TRUE;
}
return FALSE;
}

void MixTable(char *szTableToMix, char *szTableMixed)
{
unsigned long i, rndNumber;
unsigned long tableToMixLength = strlen(szTableToMix);
unsigned long tableMixedLength = strlen(szTableMixed);
char currentChar;

for( i=0; i<tableToMixLength; i++ )
{
do
{
MySRand();

rndNumber = ( rand() % tableToMixLength );

currentChar = szTableToMix[rndNumber];

} while( AlreadyExist( szTableMixed, currentChar ) );

szTableMixed[i] = currentChar;
}
}

int main(int argc, char* argv[])
{
char szTableToMix[] = "ABCDEFGHIJ";
char szTableMixed[50];

memset( szTableMixed, 0, sizeof(szTableMixed) );

printf( "Tableau a melanger %s\n\n", szTableToMix );

MixTable( szTableToMix, szTableMixed );

printf( "Tableau melange %s\n\n", szTableMixed );

return 0;
}
0
picollus Messages postés 4 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 24 août 2004
24 août 2004 à 21:51
Merci beaucoup c'est cool je vais tester ca !
0
Rejoignez-nous