C - 将数组中的元素与之前的元素进行比较

时间:2016-11-26 23:21:11

标签: c arrays

我有一个生成随机数的循环。我想比较当前迭代中生成的随机数和所有先前迭代中生成的随机数,并在两个随机数之间存在匹配时break。 这是我到目前为止所做的,但它只是将当前的随机数与之前生成的随机数进行比较。

for (i = 0; i < SIZE; ++i)
{
    a[i] = (100*(1 + rand() % 12)) + (1 + rand() % 30);

    for (j = i - 1; j < SIZE; ++j)
    {
        if (a[i] != a[j])
        {
            printf("Person %i - %i\n", i, a[i]);
        }
        else break; 
    }

}

1 个答案:

答案 0 :(得分:1)

这是你的想法吗?

for (i = 0; i < SIZE; ++i)
{
    a[i] = (100*(1 + rand() % 12)) + (1 + rand() % 30);
    found = 0;
    for (j = 0; j < i; ++j)
    {
        if (a[i] == a[j])
        {
             found = 1;
             break;
        }
    }
    if(!found) 
    {
        printf("Person %i - %i\n", i, a[i]);
    }
    else
        break;
}