PDA

Visualizza la versione completa : [C] Generazione di sequenze


Downloader
19-05-2008, 16:30
Ciao a tutti,

sto cercando del materiale riguardo la generazione di sequenze in C.
Conoscete qualche buon manuale on-line che ne parla??


Grazie

oregon
19-05-2008, 17:17
Originariamente inviato da Downloader
sto cercando del materiale riguardo la generazione di sequenze in C.


Cosa sono le "sequenze in C"?

menphisx
19-05-2008, 17:24
fibonacci ? In quel senso ?

Downloader
19-05-2008, 17:59
Se ad esempio ho una sequenza {1,2,3} e voglio tutte le possibili sequenze di lunghezza 2 otterņ:
(1,1) (1,2) (1,3)
(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)

MItaly
19-05-2008, 20:11
#include <stdio.h>
/* Macro per determinare le dimensioni di un array */
#define ARRSIZE(arr) ((size_t)(sizeof(arr)/sizeof(*arr)))
/* Funzione richiamata ricorsivamente da WriteCombinations */
void InternalWriteCombinations(int * values, size_t elements, int seqLength, char * buffer, char * writePtr, size_t availableSize);
/* Scrive le combinazioni di simboli contenuti nell'array values (il numero dei suoi elementi č contenuto in elements); le combinazioni saranno lunghe seqLength caratteri */
void WriteCombinations(int * values, size_t elements, int seqLength);

int main()
{
int values[]={1,2,3}; /* valori da utilizzare */
WriteCombinations(values,ARRSIZE(values),3); /* l'ultimo parametro č la lunghezza delle sequenze */
return 0;
}

void InternalWriteCombinations(int * values, size_t elements, int seqLength, char * buffer, char * writePtr, size_t availableSize)
{
int i, usedChars;
for(i=0; i<elements; i++)
{
usedChars=_snprintf(writePtr,availableSize,"%d ",values[i]);
if(seqLength>1)
InternalWriteCombinations(values,elements,seqLengt h-1,buffer, writePtr+usedChars,availableSize-usedChars);
else
puts(buffer);
}
}

void WriteCombinations(int * values, size_t elements, int seqLength)
{
char buffer[512];
InternalWriteCombinations(values, elements, seqLength, buffer, buffer, ARRSIZE(buffer));
}

Loading