PDA

View Full Version : Correzione codice in C


mikael_c
12-09-2013, 11:29
Ho scritto l'Algoritmo di Fisher-Yates Shuffling. come imposto il main in modo da farlo funzionare???viene eseguito ma non mi da risultati in genere nel main va knuthShuffle( orgArray[], arraySize) perņ mi da errori.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void knuthShuffle(int orgArray[], int arraySize)
{
if (arraySize == 0 || arraySize == 1)
return;

srand(time(NULL));

int i;
int index, temp;
for (i = arraySize - 1; i > 0; i--)
{
index = rand() % (i+1);
temp = orgArray[index];
orgArray[index] = orgArray[i];
orgArray[i] = temp;
}
}

int main(void)
{
.........


}

Storti
13-09-2013, 10:29
Mi pare strano che sei riuscito a scrivere un algoritmo del genere e non sai come impostare il main... comunque questo č un esempio:


int main(void)
{
srand(time(NULL));

int arr[] = { 5, 23, 56, 99, 122, 200 };
int sarr = sizeof(arr) / sizeof(int);
int i;

knuthShuffle(arr, sarr);

for (i = 0; i < sarr; i++) printf("arr[%d]: %d\n", i, arr[i]);
getchar();
}


srand va chiamata una volta all'inizio del programma, non serve all'interno della funzione.