我正在尝试用c编写代码,该代码可以确定特定数字出现的次数。这就是我到目前为止所做的。
#include<stdio.h>
int randomInt(int max)
{
return (random(2) % max);
}
main()
{
int i;
int position = 1, r = 1; /*Position indicates the position of the particleand r represents where the particle will move next*/
int L = 10,M = 20; /*L is the number of sites and M is the number of hops*/
int seed, n;
int frequency[position];
//setup the random seed generator
printf("\nEnter your value of seed\n");
scanf("%d",&seed);
srandom(seed);
printf("\nThe value of the seed is %d\n",seed);
for(i = 0; i < M; i++) //This loops around the total number of loops.
{
printf("\nThe particle is at position %d\n",position);
n = randomInt(2); /* This chooses either the numbers 0 or 1 randomly */
frequency[position] = frequency[position] + 1;
printf("This position has been visited %d times\n",frequency[position]);
/*Below represents the conditions which will determine the movement of the particle*/
if(n==0)
r=1;
if(n==1)
r=-1;
position = position + r;
if(position == 0)
position = L;
if(position == L+1)
position = 1;
}
}
如上所述,我需要能够计算特定数字出现的次数。但是,我不知道该怎么做。任何帮助将不胜感激。
答案 0 :(得分:1)
您正在以错误的方式使用自己的程序,这让我觉得它可能不是您的程序,但这是一个与问题无关的假设,您使用的方式代码就是问题。
此
int frequency[position];
没有意义,因为你需要将frequency
数组初始化为你要计算的最大数字,所以它似乎应该是
int frequency[M];
相反,您需要在0
和M
之间生成随机数,您应该
position = randomInt(M);
那么代码可能会起作用,但我不能花更多时间检查它是否会,尝试这些修补程序,如果它不起作用,试着找出原因,如果可以的话,&#39然后可能会问一个新问题。