# Arrrays, Loops, and Randomization

• 05-20-2003
myrddin
Arrrays, Loops, and Randomization
I have an int arrary of 10 -

int array[10]

by using #include <time.h> to be able to srnd using time for true varience like:

srand( (unsigned)time( NULL ) );
j = (int) 10 * rand() / (RAND_MAX + 1.0);

I want to be able to somehow create a loop (probably by using another array as well) that will put the numbers 1-10 in the array indices but in a way that all the numbers 1-10 are used and none are repeated.

I don't know if I am even on the right track of how I am going about this.. but I was thinking using another array filled with the numbers 1-10 and then somehow when I get j turn j's indice into a 0 and then my check for continuing the loop would be if all the indces of array2 are used and to only use the indice of array[j] if it is not 0.

so check for the loop would be something like...

for (i = 10, c = 0; i < 10 ; i++)
{
c = c + array[i];
}

if (c == 0)

/* stop loop */

else
/* loop continues */

and then in a nested loop maybe? something like..

{
srand( (unsigned)time( NULL ) );
j = (int) 10 * rand() / (RAND_MAX + 1.0)
if (array2[j] == 0);

else
{
array2[j] = 0;
array1[i] = j;
i++;
}
}

Any suggestions? thoughts? comments? How do I do this?
• 05-20-2003
Brighteyes
>Any suggestions? thoughts? comments? How do I do this?
Not a bad problem, here's one way:
Code:

```#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define LOW  1 #define HIGH  10 #define SIZE  10 #define NPOS  SIZE #define INVAL -1 static int find(int* array, int size, int val) {     int i;     for (i = 0; i < size; i++)     {         if (array[i] == val)             return i;     }     return size; } int main(void) {     int array[SIZE];     int i = 0;     int r;     srand((unsigned)time(0));     for (i = 0; i < SIZE; i++)         array[i] = INVAL;     while ((i = find(array, SIZE, INVAL)) != NPOS)     {         r = (int)((double)rand() * HIGH) / RAND_MAX + LOW;         if (find(array, SIZE, r) == NPOS)             array[i] = r;     }     for (i = 0; i < SIZE; i++)         printf("%d, ", array[i]);     return 0; }```
• 05-21-2003
myrddin
Thank you for the help!!
• 05-21-2003
KneeGrow
is the plural of index really indices i thougth it was indexes
• 05-21-2003
DavT
see http://www.hyperdictionary.com/dictionary/indices

Both 'indexes' and 'indices' are valid plurals of index except:

Quote:

6. (Math.) The figure or letter which shows the power or root
of a quantity; the exponent. [In this sense the plural is
always {indices}.]