我正在为老虎机项目编写一段代码,我有两个阵列工作。 我想比较数组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();
答案 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
中的end
到array
的值进行比较。对于您array
arrayOne
,start
为0
,end
为1
,compare_value
为arrayTwo[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";
}