我的目标是生成一个程序,它可以从用户(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;
}