将数组的一个元素与另一个数组的多个元素进行比较

时间:2015-08-20 02:52:48

标签: c++ arrays

我正在为老虎机项目编写一段代码,我有两个阵列工作。 我想比较数组1的一个元素和数组2的多个元素。

这是我目前的一段代码,我对它采取了摆动但我不认为这是正确的。

char arrayOne[10]{ 1, 1, 2, 2, 3, 4, 4, 5, 5 };
char arrayTwo[10]{ 1, 2, 3, 4, 5 };

if (arrayTwo[0] == arrayOne[0 - 1])
    cout << "The Numbers are the same";
else
    cout << "the numbers are different";
_getch();

2 个答案:

答案 0 :(得分:0)

在C ++中,您编写的语法与arrayTwo[0] == arrayOne[-1]相同,我相当肯定我们都同意这不是您想要的。

您正在寻找:

((arrayTwo[0] == arrayOne[0]) and (arrayTwo[0] == arrayOne[1]))

如果你想匹配任意数量的元素,那么你应该学习循环:

bool truthiness = true;
for (int i=0; i<10; ++i) {
    truthiness = truthiness and (arrayTwo[0] == arrayOne[i]);
}
if (truthiness) {
    cout << "The numbers are the same";
} else {
    cout << "The numbers are different";
}

答案 1 :(得分:0)

你应该使用一个循环。我已经为你写了这个小功能......

int
array_range_compare (char *array, int compare_value, int start, int end)
{
    for (int i = start; i <= end; i++) {
        if (compare_value != array[i]) {
            return 0;
        }
    }

    return 1;
}

这会将compare_value的值与start中的endarray的值进行比较。对于您array arrayOnestart0end1compare_valuearrayTwo[0] ,除array之外的所有变量都是整数。

您可以像这样使用此功能......

char arrayOne[10] = { 1, 1, 2, 2, 3, 4, 4, 5, 5 };
char arrayTwo[10] = { 1, 2, 3, 4, 5 };

if (array_range_compare (arrayOne, arrayTwo[0], 0, 1)) {
    std::cout << "The Numbers are the same";
} else {
    std::cout << "the numbers are different";
}