mardi 12 février 2019

How to get user-created amount of pseudo-random numbers in a range in C

I'm using seed 0. I can't get the correct amount of different numbers to be generated. It just seems to output the number entered and one number less than that.

This is supposed to ask the user for how many numbers they want to generate in range 0 to 99 then generate that many numbers and output how many different numbers out of 100 were generated. Have tried changing where I declare the variable that holds the random numbers. I'm not sure what else I can try.

include

include

int main (void) {

    srand(0);

    int numRandoms = 0;
    int i = 0;
    int difNums = 0;

    printf("How many random numbers to generate:\n");
    scanf("%d", &numRandoms);

    int ranNums[numRandoms];



    for (i = 0; i < numRandoms; ++i) {

            ranNums[i] = (rand () % 100);
    }

    for (i = 1; i <= numRandoms; ++i) {

            if (ranNums[i] != ranNums[i - 1]) {
                    ++difNums;
            }
    }


    printf("%d out of 100 numbers were generated after %d attempts\n", difNums, numRandoms);

    return 0;

}

When the user enters 1, expected output: "1 out of 100 numbers were generated after 1 attempts" I get "0 out of 100 numbers were generated after 1 attempts"

when the user enters 25, expected output: "23 out of 100 numbers were generated after 25 attempts" I get "24 out of 100 numbers were generated after 25 attempts"

When the user enters 250, expected output: "93 out of 100 numbers were generated after 250 attempts" I get "247 out of 100 numbers were generated after 250 attempts"

When the user enters 1000000, expected output: "100 out of 100 numbers were generated after 1000000 attempts" I get "Segmentation fault (core dumped)"




Aucun commentaire:

Enregistrer un commentaire