我的目标是生成一个程序,它可以从用户(srand)那里获取一个随机数,然后将它提供给一个随机数生成器(rand),然后在 1 到 10 之间选择一个随机数的 1000 次迭代。然后我想输出每个数字有多少被看到(即 7 出现 83 次,等等)。
在从用户那里获取初始数字后,我可以随机打印 1 到 10 之间的 1000 个数字,但无法弄清楚如何获取此输出并将其提供给一个数组,然后该数组可用于分解信息印刷。有人可以帮忙吗?
#include <stdio.h>
#include <stdlib.h>
int rand1(void);
void srand1(unsigned int seed);
int main()
{
    int rand_array[1000];
    int count;
    int start=1;
    int end=10;
    int number_var;
    int ones=0;
    int twos=0;
    int threes=0;
    int fours=0;
    int fives=0;
    int sixes=0;
    int sevens=0;
    int eights=0;
    int nines=0;
    int tens=0;
    int frequency[11];
    int i=0;
    unsigned seed;
    printf("Please enter your choice for seed.\n");
    printf("(between 1-10)");
    while (scanf("%u", &seed) == 1)
    {
        srand1(seed);
        for(i=0; i < 1000; i++)
        {
            rand_array[i]=rand1()%(end-start+1)+start;
            frequency[rand_array[i]]++;
        }
        for(i = 1; i < 11; i++)
        {
            printf("There are %d %d's\n", frequency[i], i);
        }
    }
    return 0;
}
int rand1(void)
{
    static unsigned long int next = 1;
    next = next * 1103515245 + 12345;
    return (unsigned int) (next/65536) % 32768;
}
void srand1(unsigned int seed)
{
    static unsigned long int next = 1;
    next = seed;
}