计算一个数字在C中出现的次数

时间:2015-04-09 15:56:05

标签: c numbers frequency

我正在尝试用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; 
    }
}

如上所述,我需要能够计算特定数字出现的次数。但是,我不知道该怎么做。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您正在以错误的方式使用自己的程序,这让我觉得它可能不是您的程序,但这是一个与问题无关的假设,您使用的方式代码就是问题。

int frequency[position];

没有意义,因为你需要将frequency数组初始化为你要计算的最大数字,所以它似乎应该是

int frequency[M];

相反,您需要在0M之间生成随机数,您应该

position = randomInt(M);

那么代码可能会起作用,但我不能花更多时间检查它是否会,尝试这些修补程序,如果它不起作用,试着找出原因,如果可以的话,&#39然后可能会问一个新问题。